我有以下课程
Class Car{
private StringProperty type;
//+setters and getters
}
Class Person{
private Car car;
private StringProperty name;
//+setters and getters
}
我有 tableView TableView<Person>
。在这个 tableView 中,我有两列 - Person Name 和 Car Type。
这就是我为 Person Name 创建列的方式
TableColumn<Person,String> column=new TableColumn("Person Name");
column.setCellValueFactory(data->data.getValue().getName());
你可以看到,在 Person 类中 Car 可以有两个变化。首先一个人可以得到另一辆车,其次汽车可以改变它的类型。
如何构建列 Car Type 并绑定到“这两个更改”
Bindings 类的select* 方法是为此而设计的:
carTypeColumn.setCellValueFactory(
data -> Bindings.selectString(data.getValue(), "car", "type"));
请注意,您的 getter 和 setter 应遵循 JavaFX 约定,就像所有 JavaFX 类一样:
class Car {
private final StringProperty type = new SimpleStringProperty();
public StringProperty typeProperty() { return type; }
public String getType() { return type.get(); }
public void setType(String newType) { type.set(newType); }
}
class Person {
private final ObjectProperty<Car> car = new SimpleObjectProperty<>();
private final StringProperty name = new SimpleStringProperty();
public ObjectProperty<Car> carProperty() { return car; }
public Car getCar() { return car.get(); }
public void setCar(Car newCar) { car.set(newCar); }
public StringProperty nameProperty() { return name; }
public String getName() { return name.get(); }
public void setName(String newName) { name.set(newName); }
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句