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");
}
實際上你是否已將任何'PersonTest'對象添加到'person'列表中?我在代碼中看不到任何增加。 –
在你的read(...)方法中,你需要在循環開始之前創建一個ArrayList()。然後,當您讀取每個PersonTest時,您會將該對象添加到ArrayList。循環完成後,您將調用您的「fillnList()」方法。 – camickr