我有一个ToggleGroup按钮,可以是3个按钮,togglename选择答案或2个按钮,其中togglename为true或false。事实上,切换组包含对应于asnwers的按钮(从问题到我在javafx中制作的测验游戏)。在click事件中,我想找到按下的按钮,并在actionlistener中返回相应的值。
我的代码如下:`
groupAnswerQ = new ToggleGroup();
class MyChooseAnswerButton extends ToggleButton {
public MyChooseAnswerButton() {
setToggleGroup(groupAnswerQ);
setWrapText(true);
}
}
SanswerButton1 = new MyChooseAnswerButton();
SanswerButton2 = new MyChooseAnswerButton();
SanswerButton3 = new MyChooseAnswerButton();
groupAnswerQ.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
public void changed(ObservableValue<? extends Toggle> ov, Toggle toggle, Toggle new_toggle) {
if (new_toggle != null) {
textAnswerQ = (String) groupAnswerQ.getSelectedToggle().getUserData();
System.out.println("textAnswerQ : " + textAnswerQ);
}
}
});`
这是针对选择答案的情况(对于真或假是类似的代码)。我的问题是,当检测到事件时,即使new_toggle不为null,textAnswerQ也始终返回null。我在这里做错了什么?
答案 0 :(得分:1)
参考here
您是否有理由检查new_toggle是否为空?传递给new_toggle变量的是什么?如果您的userData没有问题,请尝试检查 groupAnswerQ.getSelectedToggle()是否为空。