gpt4 book ai didi

javafx 2 CheckBoxTableCell 在表格 View 中不起作用

转载 作者:行者123 更新时间:2023-12-02 01:18:42 24 4
gpt4 key购买 nike

我需要一些帮助,即使我的情况很简单。但我不明白为什么 TableView 中的复选框没有获取值。我从 javafx ensemble 中得到了示例

我有课

public class ReservationObj {
private BooleanProperty tcheck;
private StringProperty tname;
private StringProperty tstatus;
private int tser;

public ReservationObj(boolean tcheck, String lname , String lBStatus, int serialinVector) {

this.tcheck = new SimpleBooleanProperty(tcheck);
this.tname = new SimpleStringProperty(lname);
this.tstatus = new SimpleStringProperty(lBStatus);

this.tser = serialinVector;

this.tcheck.addListener(new ChangeListener<Boolean>() {

@Override
public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
System.out.println("The check Box is: " + t1);
}
});

}

public BooleanProperty getTcheck() {return tcheck;}

public String getTname() {return tname.getValue() ;}

public void setTname(String tname) {this.tname.set(tname);}

public String getTstatus() {return tstatus.getValue() ;}

public void setTstatus(String tstatus) {this.tstatus.set(tstatus);}

public int getTser() {return tser;}

public void setTser(int tser) { this.tser = tser;}

}

我也有。

public Parent createContent() {

final ObservableList<ReservationObj> ReservationList = FXCollections.observableArrayList(
new ReservationObj(true, "aaaaaaaa", "bbbbbbbbb", 1));

TableColumn RCheckCol = new TableColumn<ReservationObj, Boolean>();

RCheckCol.setCellValueFactory(new PropertyValueFactory("tcheck"));
RCheckCol.setText("aaa");
RCheckCol.setCellFactory(new Callback<TableColumn<ReservationObj, Boolean>, TableCell<ReservationObj, Boolean>>() {

public TableCell<ReservationObj, Boolean> call(TableColumn<ReservationObj, Boolean> p) {

return new CheckBoxTableCell<ReservationObj, Boolean>();

}
});

TableColumn RNameCol = new TableColumn();
RNameCol.setCellValueFactory(new PropertyValueFactory("tname"));
RNameCol.setText("bbbb");

TableColumn RAgeCol = new TableColumn();
RAgeCol.setCellValueFactory(new PropertyValueFactory("tstatus"));
RAgeCol.setText("cccc");

TableView AAView = new TableView();

AAView.setItems(ReservationList);
AAView.setEditable(true);
AAView.getColumns().addAll(RCheckCol,RNameCol,RAgeCol);

return AAView;

}

简单的时候。

@Override
public void start(Stage primaryStage) {
primaryStage.setScene(new Scene(createContent()));
primaryStage.show();

}

表格 View 的列正在获取除第一个“复选框”之外的值。复选框中的监听器也不起作用。我真的不明白我做错了什么。因为我从乐团中得到了例子。感谢您的每一个想法和任何解决方案。埃利亚斯

最佳答案

您的 ReservationObj 类不尊重 JavaFX Properties命名方法的约定。

如果您想将 RCheckColtcheck BooleanProperty 绑定(bind):

  RCheckCol.setCellValueFactory(new PropertyValueFactory("tcheck")); 

您必须在模型类中提供 tcheckProperty 方法:

public BooleanProperty tcheckProperty() {
return tcheck;
}
<小时/>

作为有效 JavaFX Bean 的示例:

public class Person {

private StringProperty name = new SimpleStringProperty("");

public Person(String name) {
this.name.setValue(name);
}

public String getName() {
return name.getValue();
}

public void setName(String name) {
this.name.setValue(name);
}

public StringProperty nameProperty() {
return name;
}
}

关于javafx 2 CheckBoxTableCell 在表格 View 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18460886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com