在JavaFX中,如何在按下RadioButton时进行变量更改?
我有一个程序,用户必须在其中注册,在注册场景中,他用单选按钮选择性别: 我有一个可变的性别,这是一个字符;我希望程序根据用户按下的单选按钮,将这个字符改为“m”或“f”,男性按“m”,女性按“f”。 这是我目前所拥有的,但它不起作用:在JavaFX中,如何在按下RadioButton时进行变量更改?,java,javafx,radio-button,Java,Javafx,Radio Button,我有一个程序,用户必须在其中注册,在注册场景中,他用单选按钮选择性别: 我有一个可变的性别,这是一个字符;我希望程序根据用户按下的单选按钮,将这个字符改为“m”或“f”,男性按“m”,女性按“f”。 这是我目前所拥有的,但它不起作用: @FXML private RadioButton male; @FXML private RadioButton female; priva
@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';
}
});
谢谢你的时间和努力 您可以尝试使用与RadioButton类关联的isSelected方法
比如说,
if(male.isSelected()){
gender = 'm';
}
同样,在正确初始化后,您可以将其用于其他单选按钮。您的单选按钮应放置在 如果没有切换组,单选按钮选择将不会相互排斥,因此性别可能同时为男性和女性 然后,您可以侦听所选切换的更改并对其进行操作。这可以通过向组中的每个切换添加侦听器来实现:
male.selectedProperty.addListener((observable, wasSelected, isSelected) -> {
if (isSelected) {
gender = 'm';
}
};
// similarly for female...
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 = '?';
}
}
);
或通过侦听对组的SelectedToggle属性的更改:
male.selectedProperty.addListener((observable, wasSelected, isSelected) -> {
if (isSelected) {
gender = 'm';
}
};
// similarly for female...
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 = '?';
}
}
);
什么不起作用?哪里不起作用?有错误吗?@Steven gender返回空值,无论是否按下单选按钮。非常感谢!你是一个传奇!