-1

如何使用 FXML 在按钮 Press 上刷新 tableView 中的数据?

我有以下文件结构,我想在按下按钮时刷新此表中的数据。有人知道解决方案吗?

public class MyTable {

private final SimpleStringProperty ID = new SimpleStringProperty("");
private final SimpleStringProperty ParticipantID = new SimpleStringProperty("");


public Positions() {
    this("", "")
}

public Positions(String ID, String ParticipantID) {

    setMemberID(ID);
    setParticipantID(ParticipantID); 
}


public String getParticipantID() {
    return  ParticipantID.get();
}

public void setParticipantID(String pID) {
    ParticipantID.set(ParticipantID); 

}

public String getID() {
    return ID.get();
}

public void ID(String cID) {
    ID.set(ID);
}
}

为此,我在 tablecontroller 文件上初始化了这个表。现在按下按钮,我想要作为 FXML 文件更新本身的 tableview。我该怎么做呢?

4

2 回答 2

1

谢谢,但解决方案是拥有一个全局 ObservableList<> 数据,然后您可以在按钮按下操作事件上对其进行修改。我试图做的是创建另一个不起作用的可观察列表。

于 2014-10-21T14:55:54.913 回答
1

如果您只想在按下按钮时更新而不是在修改数据时更新,这是默认方式吗?

最简单的方法是创建一个所有数据都更新到的 bean,并让按钮将其与代表表中一行的 bean 同步。

public class TableBean
{
 MyTable child;
 String Id;
 String ParticipantId;
 public void Sync()
 {
  child.Id(Id);
  child.setParticipantID(ParticipantId);
 }
}

重要的是要注意您的方法违反了 JavaFX convetion ,这可能会阻碍事情。JavaFX 中用于每个属性的 3 种方法的示例。

private final IntegerProperty ratio = new SimpleIntegerProperty();

public int getRatio() {
    return ratio.get();
}

public void setRatio(int value) {
    ratio.set(value);
}

public IntegerProperty ratioProperty() {
    return ratio;
}
于 2014-10-22T17:21:37.357 回答