2

这就是我回答完最后一个问题所需的全部内容。

如果你看我的最后一个问题,你会看到我的类,包含四个字段,对应我的表的四列

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();
    }
}

运行后如何让 GUI 更新ContactOptions.one.set

当我向下滚动并备份时,它会更新。我怎样才能让它在不滚动的情况下更新。

我还在https://forums.oracle.com/forums/thread.jspa?threadID=2275725上问过这个问题

4

3 回答 3

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

但我认为你已经处理了这个问题)

于 2012-03-19T11:29:01.880 回答
2

为了使更新无缝工作,您应该初始化每个属性并添加xxxProperty方法:

private final StringProperty one = new SimpleIntegerProperty();

public StringProperty oneProperty() {
   return one;
}

根据我自己的经验,不要使用使用大写字母的属性名称,例如“myOne”或“myONE”,因为该xxxProperty方法不会运行。

于 2012-08-30T12:36:19.070 回答
1

您使用的是哪个版本的 JavaFX 2.0?我问的原因是表最近发生了变化,我想确保您使用的是最新版本。

于 2011-09-27T11:59:13.470 回答