【问题标题】:How display two events in one label when press button按下按钮时如何在一个标签中显示两个事件
【发布时间】:2019-12-02 08:45:30
【问题描述】:

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

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() );
    }
});

【问题讨论】:

标签: button javafx controls


【解决方案1】:

第一个问题是您在同一个按钮上有两个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());
        }
    }
});

无论你选择哪一个,在你按下按钮后,它总是将标签设置为:

info.setText(nameField.getText()+ "\n"
    + noField.getText() + "\n"
    + emaileField.getText() );

正如我所说,这是最后一个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());
    }
});

对于这个解决方案,您现在只有一个ActionEvent。但是在这个ActionEvent 中,您现在正在检查是否选择了性别,如果选择了,是哪一个?在此查询之后,调整了输出。

【讨论】:

  • @hajer:一段时间后,您可以通过点击左侧的empty check mark 来接受这个答案。
  • 没问题 :) 欢迎来到 StackOverflow。如果您愿意,可以花一点时间开始参观,了解如何提出更好的问题、MCVE 是什么等。link
  • 我建议通过将基于 RadioButton(?) 选择的值分配给变量来减少代码重复:String genderDependent=""; if (male.isSelected()) { genderDependent = "\n" + male.getText(); } else if (female.isSelected()) { genderDependent = "\n" + female.getText(); } info.setText(nameField.getText() + "\n" + noField.getText() + "\n" + emaileField.getText() + genderDependent);...
猜你喜欢
  • 2023-03-10
  • 1970-01-01
  • 2016-07-03
  • 2018-04-04
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多