我想在一个标签中显示来自用户的输入信息,但我在运行时无法在标签中显示性别选项
button.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event) {
if (male.isSelected()) {
info.setText(male.getText());
}
if (female.isSelected()) {
info.setText(female.getText());
}
}
});
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
info.setText(nameField.getText()+ "\n"+ noField.getText() +"\n"+ emaileField.getText() );
}
});
Run Code Online (Sandbox Code Playgroud)
第一个问题是您ActionEvent在同一个按钮上有两个实例。第一个ActionEvent,在你的情况下,这个被覆盖:
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
if (male.isSelected()) {
info.setText(male.getText());
}
if (female.isSelected()) {
info.setText(female.getText());
}
}
});
Run Code Online (Sandbox Code Playgroud)
无论您选择哪一个,在您按下按钮后,它都会将标签设置为:
info.setText(nameField.getText()+ "\n"
+ noField.getText() + "\n"
+ emaileField.getText() );
Run Code Online (Sandbox Code Playgroud)
正如我所说,这是最后一个ActionEvent,另一个被这个覆盖。
我不清楚你的问题:你想显示所有信息和性别吗?我这样做是为了显示所有信息和性别。
button.setOnAction(event -> {
if (male.isSelected()) {
info.setText(nameField.getText() + "\n" + noField.getText() + "\n" + emaileField.getText() + "\n" + male.getText());
} else if (female.isSelected()) {
info.setText(nameField.getText() + "\n" + noField.getText() + "\n" + emaileField.getText() + "\n" + female.getText());
} else {
info.setText(nameField.getText() + "\n" + noField.getText() + "\n" + emaileField.getText());
}
});
Run Code Online (Sandbox Code Playgroud)
对于此解决方案,您现在只有一个ActionEvent. 但是在此ActionEvent您现在正在检查是否选择了性别,如果选择了哪个?在这个查询之后,输出被调整。