JavaFx,应用程序don';不要添加信息

JavaFx,应用程序don';不要添加信息,javafx,Javafx,我正在联系人列表上执行类似的程序,但当我尝试添加信息时,我看不到我的信息。但如果我点击九下,我就能看到滚动。 我有我的工作文件,下面是end prtsc fxml文件 @FXML private void initialize() throws IOException { iniData(); id.setCellValueFactory(new PropertyValueFactory<Work, Integer>("id")); Fname.setC

我正在联系人列表上执行类似的程序,但当我尝试添加信息时,我看不到我的信息。但如果我点击九下,我就能看到滚动。 我有我的工作文件,下面是end prtsc fxml文件

 @FXML
  private void initialize() throws IOException {
    iniData();
    id.setCellValueFactory(new PropertyValueFactory<Work, Integer>("id"));
    Fname.setCellValueFactory(new PropertyValueFactory<Work, String>("fname"));
    Lname.setCellValueFactory(new PropertyValueFactory<Work, String>("lname"));
    Phone.setCellValueFactory(new PropertyValueFactory<Work, String>("phone"));
    Email.setCellValueFactory(new PropertyValueFactory<Work, String>("email"));
    table.setItems(arr);

    addName.setPromptText("fname");
    addName.setMaxWidth(Fname.getPrefWidth());
    addLName.setPromptText("lname");
    addLName.setMaxWidth(Lname.getPrefWidth());
    addPhone.setPromptText("phone");
    addPhone.setMaxWidth(Phone.getPrefWidth());
    addEmail.setPromptText("email");
    addEmail.setMaxWidth(Email.getPrefWidth());
btn01.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
        arr.add(new Work(addName.getText(),
                addLName.getText(), addPhone.getText(), addEmail.getText()));
    }    }    );        }

public void iniData() throws IOException {
    arr.add(new Work(1, "Alex", "qwerty", "33333","alex@mail.com"));
    arr.add(new Work(2, "Bob", "dsfsdfw","0987432", "bob@mail.com"));
    arr.add(new Work(3, "Jeck", "dsfdsfwe","345743", "Jeck@mail.com"));
    arr.add(new Work(4, "Mike", "iueern","32456", "mike@mail.com"));
    arr.add(new Work(5, "colin", "woeirn","12233455", "colin@mail.com"));
}}

由于您没有在工作类中使用属性,因此必须将单元格设置为

FName.setCellValueFactory(new Callback<CellDataFeatures<Work, String>, ObservableValue<String>>() {
 public ObservableValue<String> call(CellDataFeatures<Work, String> p) {
     return new ReadOnlyObjectWrapper(p.getValue().getFname());
 }
FName.setCellValueFactory(新回调(){
公共可观察值呼叫(CellDatap){
返回新的ReadOnlyObjectWrapper(p.getValue().getFname());
}
}))


作为替代方案,您可以使用属性,但由于属性不可序列化,您必须重写读取和写入对象的函数,如所述

您可以显示
工作
类吗?
FName.setCellValueFactory(new Callback<CellDataFeatures<Work, String>, ObservableValue<String>>() {
 public ObservableValue<String> call(CellDataFeatures<Work, String> p) {
     return new ReadOnlyObjectWrapper(p.getValue().getFname());
 }