我有一个程序,用户必须在其中注册并在注册场景中使用RadioButton选择性别: Screenshot of the program running
我有一个变量"性别"这是一个炭;我希望程序将此字符更改为“' m'或者' f'取决于RadioButton用户按下的内容(' m'对于男性,' f'对于女性)。 这就是我现在所拥有的,但它不起作用:
@FXML
private RadioButton male;
@FXML
private RadioButton female;
private char gender;
male.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
gender = 'm';
}
});
female.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
gender = 'f';
}
});
感谢您的时间和精力!
答案 0 :(得分:0)
您可以尝试使用与isSelected()
类相关联的RadioButton
方法。
例如,
if(male.isSelected()){
gender = 'm';
}
同样,您可以在正确初始化后将其用于其他单选按钮。
答案 1 :(得分:0)
您的单选按钮应放在ToggleGroup。
中如果没有切换组,单选按钮选择不会互相排斥,因此性别可以同时为男性和女性。
然后,您可以收听所选切换的更改并对其进行操作。这可以通过为组中的每个切换添加一个监听器来完成:
male.selectedProperty.addListener((observable, wasSelected, isSelected) -> {
if (isSelected) {
gender = 'm';
}
};
// similarly for female...
或者通过收听对该组的selectedToggleProperty的更改:
ToggleGroup genderGroup = new ToggleGroup();
male.setToggleGroup(genderGroup);
female.setToggleGroup(genderGroup);
genderGroup.selectedToggleProperty().addListener(
(observable, oldToggle, newToggle) -> {
if (newToggle == male) {
gender = 'm';
} else if (newToggle == female) {
gender = 'f';
} else {
gender = '?';
}
}
);