这就是我完成回答my last question所需的全部内容。
如果你查看我的上一个问题,你会看到我的班级,其中包含四个字段,对应于我表格的四列
public static class ContactOptions {
private final StringProperty one;
private final StringProperty two;
private final StringProperty three;
private final StringProperty four;
ContactOptions(String col1, String col2, String col3, String col4) {
this.one = new StringProperty(col1);
this.two = new StringProperty(col2);
this.three = new StringProperty(col3);
this.four = new StringProperty(col4);
}
public String getOne() {
return one.get();
}
public String getTwo() {
return two.get();
}
public String getThree() {
return three.get();
}
public String getFour() {
return four.get();
}
}
运行ContactOptions.one.set
后,如何让GUI更新?
当我向下滚动并向后滚动时,它会更新。如何在不滚动的情况下更新它。
我也在https://forums.oracle.com/forums/thread.jspa?threadID=2275725
问了这个问题答案 0 :(得分:2)
也许您应该使用以下方法之一:
updateTableColumn(TableColumn col)
更新与此TableCell关联的TableColumn。
updateTableRow(TableRow tableRow)
更新与此TableCell关联的TableRow。
updateTableView(TableView tv)
更新与此TableCell关联的TableView。
(来自http://docs.oracle.com/javafx/2.0/api/javafx/scene/control/TableCell.html)
但我认为你已经处理过这个问题了)
答案 1 :(得分:2)
要使更新无缝工作,您应该初始化每个属性并添加xxxProperty
方法:
private final StringProperty one = new SimpleIntegerProperty();
public StringProperty oneProperty() {
return one;
}
根据我自己的经验,不要使用upperCase字母使用属性名称,例如“myOne”或“myONE”,因为xxxProperty
方法不会运行。
答案 2 :(得分:1)
您使用的是哪种JavaFX 2.0版本?我问的原因是最近表格已更改,我想确保您使用的是最新版本。