2011-08-16 54 views
-2

問題1:基本上我正在從8個學生的文本文件(name,mark1,mark2)中讀取數據,我將它與一個字符串一起存儲在ArrayList中,該字符串是用戶照片的路徑 - 然後將所有學生姓名在ComboBox中,當用戶選擇一個姓名時,兩個相關的標記和照片需要分別顯示在標籤和麪板上。問題是,當用戶從ComboBox中選擇一個名稱時,我不知道如何檢索信息。我的首要想法是獲得選定的項目並使用它,但不知道從哪裏出發......!閱讀/寫入文本文件程序時遇到問題?

問題2:當我嘗試將新信息寫入文本文件時,我得到一個Nullpointer Excpetion!

//類讀取和寫入文本文件

public class FileConnect { 

    ArrayList<Student> studs = new ArrayList<Student>(); 

    public FileConnect() { 

     String s; 
     String a; 

     try { 
      BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\Student\\Desktop\\Marks.txt")); 
      while ((s = br.readLine()) != null) { 

       a = br.readLine(); 
       int i = Integer.parseInt(a); 
       a = br.readLine(); 
       int k = Integer.parseInt(a); 

       studs.add(new Student(s, "C:\\Users\\Student\\Desktop\\res\\" + s + ".png", i, k)); 
      } 
     } catch (FileNotFoundException fnf) { 
      System.out.println("FileNotFoundException: " + fnf); 
     } catch (IOException ex) { 
      System.out.println("IOException: " + ex); 
     } 
    } 

    public void addStud(String name, String compLit, String linux) { 
     try { 
      PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("C:\\Users\\Student\\Desktop\\Marks.txt")), true); 
      out.write(name); 
      out.write(compLit); 
      out.write(linux); 
     } catch (IOException ex) { 
      System.out.println("IOException: " + ex); 
     } 
    } 
} 

//class for student accessor methods 

public class Student { 

    private String name; 
    private int compLit; 
    private int linux; 
    private String photo; 

    public Student(String name, String photo, int compLit, int linux) { 
     this.name = name; 
     this.photo = photo; 
     this.compLit = compLit; 
     this.linux = linux; 
    } 

    public String getName() { 
     return this.name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public int getCompLit() { 
     return this.compLit; 
    } 

    public void setCompLit(int compLit) { 
     this.compLit = compLit; 
    } 

    public int getLinux() { 
     return this.linux; 
    } 

    public void setLinux(int linux) { 
     this.linux = linux; 
    } 

    public String getPhoto() { 
     return this.photo; 
    } 

    public void setPhoto(String photo) { 
     this.photo = photo; 
    } 

} 

//main GUI where it all happens 

public class MainGUI extends javax.swing.JFrame { 

    String name; 
    int compLit; 
    int linux; 
    String photo; 

    private FileConnect file; 
    private Student stu; 

    public MainGUI() { 


     initComponents(); 
    } 
private void menuItemExitActionPerformed(java.awt.event.ActionEvent evt) { 
     System.exit(0); 
    } 

    private void menuItemAboutActionPerformed(java.awt.event.ActionEvent evt) { 
     Date now = new Date(); 
     JOptionPane.showMessageDialog(this, "Author: Jean van der Walt \n " + now, "About" , JOptionPane.INFORMATION_MESSAGE); 
    } 

    **private void cbStudActionPerformed(java.awt.event.ActionEvent evt) { 
     //user selects item in combo box 
     //get all the info for the selected item 
     //display them 
     //I tried to do something with 
     //cbStud.getSelected..... but don't think that'll work 
    }** 

    **private void btnStudAddActionPerformed(java.awt.event.ActionEvent evt) { 
     file.addStud(tfStudName.getText(), tfStudCompLit.getText(), tfStudLinux.getText()); 
     //get a Nullpointer exception HERE!!! 
    }** 


    public static void main(String args[]) { 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new MainGUI().setVisible(true); 
      } 
     }); 
    } 

----->的文本文件,我從讀看起來像這樣:

安東尼布拉多克\ n 97 \ n ......(7個學生) --------------------------------- - >

//完整的GUI代碼

import java.util.Date; 
import javax.swing.JOptionPane; 

public class MainGUI extends javax.swing.JFrame { 

    String name; 
    int compLit; 
    int linux; 
    String photo; 

    private FileConnect file = null; 
    private Student stu = null; 

    public MainGUI() { 


     initComponents(); 
    } 


    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     lblHeading = new javax.swing.JLabel(); 
     pnlSelectStud = new javax.swing.JPanel(); 
     cbStud = new javax.swing.JComboBox(); 
     pnlMarks = new javax.swing.JPanel(); 
     lblCompLitMark = new javax.swing.JLabel(); 
     lblLinuxMark = new javax.swing.JLabel(); 
     lblCompLitDisplay = new javax.swing.JLabel(); 
     lblLinuxDisplay = new javax.swing.JLabel(); 
     pnlPhoto = new javax.swing.JPanel(); 
     lblPic = new javax.swing.JLabel(); 
     pnlAddStud = new javax.swing.JPanel(); 
     lblStudName = new javax.swing.JLabel(); 
     lblStudCompLit = new javax.swing.JLabel(); 
     lblStudLinux = new javax.swing.JLabel(); 
     tfStudName = new javax.swing.JTextField(); 
     tfStudCompLit = new javax.swing.JTextField(); 
     tfStudLinux = new javax.swing.JTextField(); 
     btnStudAdd = new javax.swing.JButton(); 
     menuBar = new javax.swing.JMenuBar(); 
     menuFile = new javax.swing.JMenu(); 
     menuItemExit = new javax.swing.JMenuItem(); 
     menuEdit = new javax.swing.JMenu(); 
     menuItemAbout = new javax.swing.JMenuItem(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

     lblHeading.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N 
     lblHeading.setText("Individual Student Marks"); 

     pnlSelectStud.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Select Student", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 14))); // NOI18N 

     cbStud.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Anthony Braddock", "Charl Fourie", "Darren Tiplady", "Jacobus Langenhoven", "Jaun Pierre Reyneke", "Johan van der Merwe", "Johannes Van Eck", "Lodewyk Duminy" })); 
     cbStud.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       cbStudActionPerformed(evt); 
      } 
     }); 

     javax.swing.GroupLayout pnlSelectStudLayout = new javax.swing.GroupLayout(pnlSelectStud); 
     pnlSelectStud.setLayout(pnlSelectStudLayout); 
     pnlSelectStudLayout.setHorizontalGroup(
      pnlSelectStudLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(pnlSelectStudLayout.createSequentialGroup() 
       .addGap(19, 19, 19) 
       .addComponent(cbStud, javax.swing.GroupLayout.PREFERRED_SIZE, 199, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(20, Short.MAX_VALUE)) 
     ); 
     pnlSelectStudLayout.setVerticalGroup(
      pnlSelectStudLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(pnlSelectStudLayout.createSequentialGroup() 
       .addGap(61, 61, 61) 
       .addComponent(cbStud, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(66, Short.MAX_VALUE)) 
     ); 

     pnlMarks.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Marks", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 14))); // NOI18N 

     lblCompLitMark.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N 
     lblCompLitMark.setText("Computer Literacy"); 

     lblLinuxMark.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N 
     lblLinuxMark.setText("Using Linux"); 

     lblCompLitDisplay.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N 
     lblCompLitDisplay.setText("UNKNOWN"); 

     lblLinuxDisplay.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N 
     lblLinuxDisplay.setText("UNKNOWN"); 

     javax.swing.GroupLayout pnlMarksLayout = new javax.swing.GroupLayout(pnlMarks); 
     pnlMarks.setLayout(pnlMarksLayout); 
     pnlMarksLayout.setHorizontalGroup(
      pnlMarksLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(pnlMarksLayout.createSequentialGroup() 
       .addContainerGap() 
       .addGroup(pnlMarksLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(lblCompLitMark) 
        .addComponent(lblLinuxMark)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 164, Short.MAX_VALUE) 
       .addGroup(pnlMarksLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(lblCompLitDisplay) 
        .addComponent(lblLinuxDisplay)) 
       .addGap(18, 18, 18)) 
     ); 
     pnlMarksLayout.setVerticalGroup(
      pnlMarksLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(pnlMarksLayout.createSequentialGroup() 
       .addGap(24, 24, 24) 
       .addGroup(pnlMarksLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(lblCompLitMark) 
        .addComponent(lblCompLitDisplay)) 
       .addGap(37, 37, 37) 
       .addGroup(pnlMarksLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(lblLinuxMark) 
        .addComponent(lblLinuxDisplay)) 
       .addContainerGap(64, Short.MAX_VALUE)) 
     ); 

     pnlPhoto.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Photo", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 14))); // NOI18N 

     javax.swing.GroupLayout pnlPhotoLayout = new javax.swing.GroupLayout(pnlPhoto); 
     pnlPhoto.setLayout(pnlPhotoLayout); 
     pnlPhotoLayout.setHorizontalGroup(
      pnlPhotoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(pnlPhotoLayout.createSequentialGroup() 
       .addGap(55, 55, 55) 
       .addComponent(lblPic, javax.swing.GroupLayout.PREFERRED_SIZE, 129, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(54, Short.MAX_VALUE)) 
     ); 
     pnlPhotoLayout.setVerticalGroup(
      pnlPhotoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(pnlPhotoLayout.createSequentialGroup() 
       .addGap(33, 33, 33) 
       .addComponent(lblPic, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(33, Short.MAX_VALUE)) 
     ); 

     pnlAddStud.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Add your name and marks", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 14))); // NOI18N 

     lblStudName.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N 
     lblStudName.setText("Name"); 

     lblStudCompLit.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N 
     lblStudCompLit.setText("Computer Literacy"); 

     lblStudLinux.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N 
     lblStudLinux.setText("Using Linux"); 

     tfStudName.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N 

     tfStudCompLit.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N 

     tfStudLinux.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N 

     btnStudAdd.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N 
     btnStudAdd.setText("Add"); 
     btnStudAdd.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       btnStudAddActionPerformed(evt); 
      } 
     }); 

     javax.swing.GroupLayout pnlAddStudLayout = new javax.swing.GroupLayout(pnlAddStud); 
     pnlAddStud.setLayout(pnlAddStudLayout); 
     pnlAddStudLayout.setHorizontalGroup(
      pnlAddStudLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(pnlAddStudLayout.createSequentialGroup() 
       .addContainerGap() 
       .addGroup(pnlAddStudLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(lblStudName) 
        .addComponent(lblStudCompLit) 
        .addComponent(lblStudLinux)) 
       .addGap(14, 14, 14) 
       .addGroup(pnlAddStudLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlAddStudLayout.createSequentialGroup() 
         .addGap(14, 14, 14) 
         .addComponent(tfStudName, javax.swing.GroupLayout.PREFERRED_SIZE, 222, javax.swing.GroupLayout.PREFERRED_SIZE)) 
        .addGroup(pnlAddStudLayout.createSequentialGroup() 
         .addGap(166, 166, 166) 
         .addGroup(pnlAddStudLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) 
          .addComponent(tfStudLinux, javax.swing.GroupLayout.Alignment.TRAILING) 
          .addComponent(tfStudCompLit, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 70, Short.MAX_VALUE))))) 
      .addComponent(btnStudAdd, javax.swing.GroupLayout.PREFERRED_SIZE, 398, javax.swing.GroupLayout.PREFERRED_SIZE) 
     ); 
     pnlAddStudLayout.setVerticalGroup(
      pnlAddStudLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(pnlAddStudLayout.createSequentialGroup() 
       .addContainerGap() 
       .addGroup(pnlAddStudLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(lblStudName) 
        .addComponent(tfStudName, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addGap(18, 18, 18) 
       .addGroup(pnlAddStudLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(lblStudCompLit) 
        .addComponent(tfStudCompLit, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addGap(9, 9, 9) 
       .addGroup(pnlAddStudLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(lblStudLinux) 
        .addComponent(tfStudLinux, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addGap(9, 9, 9) 
       .addComponent(btnStudAdd, javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE)) 
     ); 

     menuFile.setText("File"); 

     menuItemExit.setText("Exit"); 
     menuItemExit.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       menuItemExitActionPerformed(evt); 
      } 
     }); 
     menuFile.add(menuItemExit); 

     menuBar.add(menuFile); 

     menuEdit.setText("Edit"); 

     menuItemAbout.setText("About"); 
     menuItemAbout.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       menuItemAboutActionPerformed(evt); 
      } 
     }); 
     menuEdit.add(menuItemAbout); 

     menuBar.add(menuEdit); 

     setJMenuBar(menuBar); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(24, 24, 24) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(pnlPhoto, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addComponent(pnlSelectStud, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addGap(18, 18, 18) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(pnlMarks, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addComponent(pnlAddStud, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
       .addGap(26, 26, 26)) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(216, 216, 216) 
       .addComponent(lblHeading) 
       .addContainerGap(250, Short.MAX_VALUE)) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(30, 30, 30) 
       .addComponent(lblHeading, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addGap(34, 34, 34) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
        .addComponent(pnlMarks, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addComponent(pnlSelectStud, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 9, Short.MAX_VALUE) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) 
        .addComponent(pnlAddStud, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addComponent(pnlPhoto, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
       .addGap(19, 19, 19)) 
     ); 

     pack(); 
    }// </editor-fold> 

    private void menuItemExitActionPerformed(java.awt.event.ActionEvent evt) { 
     System.exit(0); 
    } 

    private void menuItemAboutActionPerformed(java.awt.event.ActionEvent evt) { 
     Date now = new Date(); 
     JOptionPane.showMessageDialog(this, "Author: Jean van der Walt \n " + now, "About" , JOptionPane.INFORMATION_MESSAGE); 
    } 

    private void cbStudActionPerformed(java.awt.event.ActionEvent evt) { 

     //user selects item in combo box 
     //get all the info for the selected item 
     //display them 
    } 

    private void btnStudAddActionPerformed(java.awt.event.ActionEvent evt) { 
     file.addStud(tfStudName.getText(), tfStudCompLit.getText(), tfStudLinux.getText()); 

    } 


    public static void main(String args[]) { 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new MainGUI().setVisible(true); 
      } 
     }); 
    } 

    // Variables declaration - do not modify//GEN-BEGIN:variables 
    private javax.swing.JButton btnStudAdd; 
    private javax.swing.JComboBox cbStud; 
    private javax.swing.JLabel lblCompLitDisplay; 
    private javax.swing.JLabel lblCompLitMark; 
    private javax.swing.JLabel lblHeading; 
    private javax.swing.JLabel lblLinuxDisplay; 
    private javax.swing.JLabel lblLinuxMark; 
    private javax.swing.JLabel lblPic; 
    private javax.swing.JLabel lblStudCompLit; 
    private javax.swing.JLabel lblStudLinux; 
    private javax.swing.JLabel lblStudName; 
    private javax.swing.JMenuBar menuBar; 
    private javax.swing.JMenu menuEdit; 
    private javax.swing.JMenu menuFile; 
    private javax.swing.JMenuItem menuItemAbout; 
    private javax.swing.JMenuItem menuItemExit; 
    private javax.swing.JPanel pnlAddStud; 
    private javax.swing.JPanel pnlMarks; 
    private javax.swing.JPanel pnlPhoto; 
    private javax.swing.JPanel pnlSelectStud; 
    private javax.swing.JTextField tfStudCompLit; 
    private javax.swing.JTextField tfStudLinux; 
    private javax.swing.JTextField tfStudName; 
    // End of variables declaration//GEN-END:variables 

} 
+0

請提供實際例外,這將是有益的,不是嗎?什麼行例如... – Nanne

+0

java.lang.NullPointerException 在question3.MainGUI.btnStudAddActionPerformed(MainGUI.java:313) – jakkamakakasdk

回答

0

問題1:由於您似乎缺少一些gui代碼,所以有點不清楚,但通常我會存儲一個Map<String, Student>,它將每個「學生名」映射到其「學生實例」並使用在由組合框選擇時(假設您顯示學生姓名並且名稱是唯一的)來查找學生。

問題2你似乎沒有初始化file

+0

我初始化文件,並得到了...線程中的異常「AWT-EventQueue-0」java.lang .NullPointerException 問題1:是的,我得到你的意見,它會更好。但是,出於某種原因,我需要使用ArrayList,並以某種方式從那裏獲取信息。缺少的GUI代碼是從NetBeans拖放的東西... – jakkamakakasdk

+0

@JavaJean - 當我說你需要初始化'文件',我的意思是把它設置爲非空... – jtahlborn

+0

@JaavaJean - 如果你可以' t(?)使用Map,那麼您需要搜索具有匹配名稱的Student的List。 – jtahlborn