2013-12-12 35 views
0

我有這三種方法,他們工作得很好。我創建了fullInList來將數據從ArrayList添加到JList。但我希望Java讀取文件,並且我希望數據顯示在JList中。我怎樣才能做到這一點?如何使用DefaultListModel將數據打印到JList?

ArrayList<PersonTest> person = new ArrayList<>(); 

DefaultListModel<PersonTest> model; 
File fileName = new File("testFromClass.txt"); 
DefaultListModel<PersonTest> model2; 


private void fillInList() { 

    model = new DefaultListModel<>(); 

    for (PersonTest temp : person) { 
     model.addElement(temp); 
    } 

    ListItems.setModel(model); 
} 

public void read(File fileN) throws IOException, ClassNotFoundException { 

    FileInputStream inFile = new FileInputStream(fileN); 
    ObjectInputStream objeRead = new ObjectInputStream(inFile); 

    while(inFile.available() > 0){   
     System.out.println((PersonTest) objeRead.readObject() + "\n");    
    } 

    objeRead.close(); 
    System.out.println("File READ"); 

} 

public void save(File fileName) throws FileNotFoundException, IOException{ 
    ObjectOutputStream objOStram = 
      new ObjectOutputStream(new FileOutputStream(fileName)); 

    for (int i = 0; i < person.size(); i++) { 
     PersonTest p = person.get(i); 
     objOStram.writeObject(p); 
     objOStram.flush(); 

    } 

    objOStram.close(); 
    System.out.println("File saved"); 

} 
+0

實際上你是否已將任何'PersonTest'對象添加到'person'列表中?我在代碼中看不到任何增加。 –

+0

在你的read(...)方法中,你需要在循環開始之前創建一個ArrayList()。然後,當您讀取每個PersonTest時,您會將該對象添加到ArrayList。循環完成後,您將調用您的「fillnList()」方法。 – camickr

回答

0

您可以將PersonTest對象添加到您在FillInList方法使用,那麼當你調用該方法的數據將可用,並且將被插入到JList的ArrayList中。

相關問題