Javafx 是否在不刷新窗口的情况下更新TableView?

Javafx 是否在不刷新窗口的情况下更新TableView?,javafx,tableview,Javafx,Tableview,我有一个带有几个文本字段和一个表视图的窗口。我制作了一个搜索引擎,每次我在文本字段中写入内容时,它都会显示一个新的给定对象数组,该数组适合我在文本字段中写入的内容。现在,我已经测试过了,我知道搜索引擎可以工作。但是当我尝试更新TableView时,问题就出现了。我已经试过了,但我能想到的唯一解决办法是,每次我在其中一个文本字段中键入内容时,刷新整个窗口。但这显然不是一件好事 所以我的问题是:您知道如何在不刷新整个窗口的情况下刷新TableView中的列表吗?或者我还可以使用其他任何东西来直观地显

我有一个带有几个文本字段和一个表视图的窗口。我制作了一个搜索引擎,每次我在文本字段中写入内容时,它都会显示一个新的给定对象数组,该数组适合我在文本字段中写入的内容。现在,我已经测试过了,我知道搜索引擎可以工作。但是当我尝试更新TableView时,问题就出现了。我已经试过了,但我能想到的唯一解决办法是,每次我在其中一个文本字段中键入内容时,刷新整个窗口。但这显然不是一件好事

所以我的问题是:您知道如何在不刷新整个窗口的情况下刷新TableView中的列表吗?或者我还可以使用其他任何东西来直观地显示例如“Person”对象,使它们能够单击并保留指向给定对象的指针

请提供您的任何意见,我很乐意尝试或讨论您要说的内容

找到了问题

setItems();似乎调用了object.equals()

我在@Override of.equals()中犯了一个错误

将此更正为:

@Override
public boolean equals(Object obj) {
    return obj != null && this.birthNo.equals(((Person) obj).getBirthNo());
}

使用fireTableCellUpdated(行、列);为了更新单个单元格或fireTableRowsUpdated(int firstRow,int lastRow)的值;一行或多行。我不确定这是否是我要找的。假设我显示了一个100万人对象的数组。然后我在一个文本字段中键入其他内容,我的搜索方法返回一个包含50万个对象的数组。有没有一种有效的方法来显示这个?出于某些原因,设置项目(可观察列表ol);导致问题。默认情况下,AbstractTableModel是有效的。即使结果集中有几百万行,屏幕上一次显示的行数也绝对不能超过100行。试试看,我明白了。我要试一试@CostisAivalis这些是Swing表模型方法,而不是JavaFX
TableView
方法。
@Override
public boolean equals(Object obj) {
    return obj != null && this.birthNo.equals(((Person) obj).getBirthNo());
}