如何在JavaFX中序列化和反序列化Listview项?

时间:2018-04-11 16:11:22

标签: listview javafx

我正在开发一个GUI项目,我必须使用序列化和反序列化。现在我正在处理联系人列表,它有几个文本框,即名字,姓氏,PhoneNumber等和Listview。每当我点击"添加联系人"按钮textBoxes内容被序列化,名字和姓氏被添加到Listview。我的问题是如何序列化Listview项目,它们都是字符串。有没有办法可以将这些数据添加到ArrayList?以及如何在我的应用程序加载时反序列化数据?我有一个反序列化方法,但不知道如何在initialize()方法中实现它。谢谢!

@FXML
private ListView<String> listView_Contact;

private final ObservableList<String> myContactList = FXCollections.observableArrayList();

1 个答案:

答案 0 :(得分:0)

您可以序列化包含字符串的ArrayList

ObjectOutputStream oos = ... ;
oos.writeObject(new ArrayList<String>(myContactList));

并在反序列化时只设置可观察列表中的所有值:

ObjectInputStream ois = ... ;
myContactList.setAll((List<String>)ois.readObject());