【发布时间】:2018-03-09 21:26:12
【问题描述】:
我需要保存多个 RadioButtons 的选择状态,以便稍后回到场景时可以看到选择了哪个 RadioButton。和userData无关,就是要看看有没有被选中。现在我知道如何让它工作,但是有很多乱七八糟的复制和粘贴。每个 ToggleGroup 都是这样的:
@FXML private RadioButton rb1;
@FXML private RadioButton rb2;
public static int[] status = new int[600];
// to save it
if (rb1.getSelect(true)){
status[0] = 1;
} else {
status[0] = 0;
}
// to load it
if (status[0] == 1){
rb1.setSelected(true);
} else {
rb2.setSelected(true);
}
问题是我编写了一个包含 300 多个问题的调查,并带有二进制答案。所以我有 600 多个不同的 RadioButtons。以这种方式实施它需要几个小时。
有什么聪明的方法吗?我很感激任何建议。提前致谢!
【问题讨论】:
-
通常GUI不应该存储任何状态,但它应该代表一个模型,模型的状态应该决定GUI元素的状态。比如:你有一个包含
Question实例的Survey类。每个Question实例都有一个BooleanProperty(答案),并在GUI 上表示为RadioButton。每个单选按钮的选中属性现在可以双向绑定到问题 answerpropery 之一。然后你只存储Survey(在内存中,持久化 - 如你所愿)。 -
@DVarga 但我必须创建 300 个 Question 实例,每个实例都有 getter 和 setter?您可以举一个关于如何将 BooleanProperty 绑定到 RadioButton 的示例吗?
标签: java javafx radio-button