仍然无法理解为什么我的 TableView 更改侦听器不起作用

我知道我的问题是微不足道的,解决方案是表面上的,但我仍然无法处理它,所以需要帮助。问题是我的代码中的 TableView ListChangeListener 没有显示更新的更改。在问一个问题之前,我已经阅读了很多主题、手册和示例

但仍然无法理解为什么我的代码不起作用。我已经添加,extractor但它没有帮助我。



跃然一笑
浏览 151回答 1
1回答

红颜莎娜

在寻找对我的问题的评论和缺点后,我发现我需要自己在代码中搜索问题。希望有人会发现这个问题并回答有用。问题出在我的阅读方法中readDataFromStream()。在阅读上述主题之前,我使用了这种方式声明ObservableListpublic static ObservableList<EmailData> emailData = FXCollections.observableArrayList();&nbsp;我的readDataFromStream样子:public static ObservableList<EmailData> readDataFromStream(byte[] bytes) {&nbsp; &nbsp; ObservableList<EmailData> emailData = FXCollections.observableArrayList();&nbsp; &nbsp; try {&nbsp; &nbsp; &nbsp; &nbsp; ByteArrayInputStream bis = new ByteArrayInputStream(bytes);&nbsp; &nbsp; &nbsp; &nbsp; ObjectInputStream ois = new ObjectInputStream(bis);&nbsp; &nbsp; &nbsp; &nbsp; List<EmailData> list = (List<EmailData>) ois.readObject();&nbsp; &nbsp; &nbsp; &nbsp; emailData = FXCollections.observableList(list);&nbsp; &nbsp; &nbsp; &nbsp; bis.close();&nbsp; &nbsp; &nbsp; &nbsp; ois.close();&nbsp; &nbsp; } catch (ClassNotFoundException | IOException e) {&nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace();&nbsp; &nbsp; }&nbsp; &nbsp; return emailData;}然后我读到我需要使用提取器创建列表。我将ObservableList声明更改为:ObservableList<EmailData> emailData = FXCollections.observableArrayList(ed ->&nbsp; &nbsp; &nbsp; &nbsp; new Observable[]{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ed.nameProperty(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ed.loginProperty(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ed.passwordProperty(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ed.commentsProperty()&nbsp; &nbsp; &nbsp; &nbsp; });但我的readDataFromStream()方法保持不变。现在我把它改成:public static ObservableList<EmailData> readDataFromStream(byte[] bytes) {ObservableList<EmailData> emailData = FXCollections.observableArrayList(ed ->&nbsp; &nbsp; &nbsp; &nbsp; new Observable[]{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ed.nameProperty(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ed.loginProperty(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ed.passwordProperty(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ed.commentsProperty()&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; try {&nbsp; &nbsp; &nbsp; &nbsp; ByteArrayInputStream bis = new ByteArrayInputStream(bytes);&nbsp; &nbsp; &nbsp; &nbsp; ObjectInputStream ois = new ObjectInputStream(bis);&nbsp; &nbsp; &nbsp; &nbsp; List<EmailData> list = (List<EmailData>) ois.readObject();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; emailData = FXCollections.observableList(&nbsp; &nbsp; &nbsp; &nbsp; list,&nbsp; &nbsp; &nbsp; &nbsp; (EmailData tp) -> new Observable[]{tp.nameProperty(), tp.passwordProperty(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tp.loginProperty(), tp.commentsProperty()});&nbsp; &nbsp; &nbsp; &nbsp; bis.close();&nbsp; &nbsp; &nbsp; &nbsp; ois.close();&nbsp; &nbsp; } catch (ClassNotFoundException | IOException e) {&nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace();&nbsp; &nbsp; }&nbsp; &nbsp; return emailData;}和wasUpdated()方法ListChangeListener.Change 现在就像一个魅力。希望对我这样的新手有所帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java