按下按钮时如何在一个标签中显示两个事件

0 controls javafx button

我想在一个标签中显示来自用户的输入信息,但我在运行时无法在标签中显示性别选项

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)

poi*_*isn 5

第一个问题是您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您现在正在检查是否选择了性别,如果选择了哪个?在这个查询之后,输出被调整。

  • @hajer:一段时间后,您可以通过单击左侧的[空复选标记](http://meta.stackoverflow.com/a/5235/163188)来接受这个答案。 (2认同)