JavaFX8复选框序列化
我有类似物体的东西JavaFX8复选框序列化,java,javafx,serialization,checkbox,serializable,Java,Javafx,Serialization,Checkbox,Serializable,我有类似物体的东西 class Person extends Human implements Serializable{ //just random example String name; CheckBox check; //other functions with checkbox and name } 我想序列化整个CheckBox对象。 我发现Java FX元素是不可能的,但是如果我只想序列化每个实例中的一个Java FX对象,有没有解决方法 感谢您的回答。原始答案 TableCo
class Person extends Human implements Serializable{ //just random example
String name;
CheckBox check;
//other functions with checkbox and name
}
我想序列化整个CheckBox对象。
我发现Java FX元素是不可能的,但是如果我只想序列化每个实例中的一个Java FX对象,有没有解决方法
感谢您的回答。原始答案
TableColumn用户选择;
userSelected.setCellValueFactory(arg0->{
User=arg0.getValue();
复选框=新复选框();
checkBox.selectedProperty().setValue(user.isSelected());
checkBox.selectedProperty().addListener((ov,旧值,新值)->user.setSelected(新值));
返回新的SimpleObject属性(复选框);
});
tableView.getColumns().addAll(用户选择);
不要将节点用作数据(它们不可序列化,几乎没有任何理由这样做),这里使用一个简单的布尔值重复:将节点用作数据是错误的!使用TableColumn
将布尔值可视化为复选框(自定义或CheckBoxTableCell)
TableColumn<User, CheckBox> userSelected;
userSelected.setCellValueFactory(arg0 -> {
User user = arg0.getValue();
CheckBox checkBox = new CheckBox();
checkBox.selectedProperty().setValue(user.isSelected());
checkBox.selectedProperty().addListener((ov, old_val, new_val) -> user.setSelected(new_val));
return new SimpleObjectProperty<>(checkBox);
});
tableView.getColumns().addAll(userSelected);