【问题标题】:How to compare 2 Field Text with each other in Javafx如何在 Javafx 中比较 2 个字段文本
【发布时间】:2018-12-29 12:56:58
【问题描述】:

我在 BankAccount 类中有 2 个字段文本,1 个用于存款,1 个用于提款。

两个字段文本都只取双精度值:

TextField depositInput = new TextField();
TextField withdrawInput = new TextField();

还有 1 个按钮来执行这些字段文本(可以是两者)。

Button button = new Button("Execute");

问题是我不知道如何告诉 Java 执行了哪个 TextField。由于我想在用户想要存款或取款时显示不同的消息:

例如:

if(FieldText executed is deposit){
    println("User deposits X amount");
    double depositAmount = X;

}

if(FieldText executed is withdraw){
    println("User withdraws X amount");
    double withdrawAmount = -X;
}

我试过了:

if(FieldText == depositInput){
}

但 Java 显示错误。

【问题讨论】:

  • @c0der 其实我不是在寻找用户是否改变了TextField里面的值,我想知道用户当前使用的是哪个TextField。
  • 定义“当前使用”。有没有重点?被编辑?已经改变 ? “已被处决”对我来说意义不大。
  • @c0der 基本上格式是这样的:i.imgur.com/m1EckSc.png。假设我在左边的方框里放了100(这是存款),然后按下按钮,即执行它->我如何让java知道我输入100的哪个字段文本,左边的还是右边的?
  • 同时处理TextFields。并检查值是否有效。如果值有效,则进行存款或取款交易。处理成功后清除TextField

标签: java if-statement javafx


【解决方案1】:

如果我的问题是正确的,最简单的解决方案就是在按下按钮时检查文本字段的值是否不为空:

TextField depositInput = new TextField();
TextField withdrawInput = new TextField();
Button button = new Button("Execute");
button.setOnAction((event) -> {
    if (!depositInput.getText().isEmpty() && !withdrawInput.getText().isEmpty()) {
        System.out.println("Deposit&Withdrawal");
    } else if (!depositInput.getText().isEmpty()) {
        System.out.println("Deposit");
    } else if (!withdrawInput.getText().isEmpty()) {
        System.out.println("Withdrawal");
    }
});

【讨论】:

    【解决方案2】:

    如果您正在使用场景构建器使用 JavaFX

    @FXML
        private PasswordField PASSWORD;
    
        @FXML
        private PasswordField REPASSWORD; 
    
    void validateFields(ActionEvent event) {
    
    if (PASSWORD.getText() == null ? REPASSWORD.getText() != null : !PASSWORD.getText().equals(REPASSWORD.getText()) ){
    
           Alert alert = new Alert(Alert.AlertType.WARNING);
                alert.setTitle("Warning");
                alert.setHeaderText("PASSWORD ERROR");
                alert.setContentText("CHECK YOUR PASSWORDS . "
                        + "\nPlease try again.");
                alert.showAndWait(); 
           }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-08-22
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多