Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX8复选框序列化_Java_Javafx_Serialization_Checkbox_Serializable - Fatal编程技术网

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);