Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX如何清除消息_Java_User Interface_Javafx 2_Message - Fatal编程技术网

JavaFX如何清除消息

JavaFX如何清除消息,java,user-interface,javafx-2,message,Java,User Interface,Javafx 2,Message,下面的代码是一个片段,如果密码不正确,它应该打印一条消息,如果密码不正确,它应该打印另一条消息 pwBox.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { Label message = new Label(); grid.add(message, 1, 7);

下面的代码是一个片段,如果密码不正确,它应该打印一条消息,如果密码不正确,它应该打印另一条消息

pwBox.setOnAction(new EventHandler<ActionEvent>() {

            public void handle(ActionEvent e) {
                Label message = new Label();
                grid.add(message, 1, 7);

                if (!pwBox.getText().equals("T2f$Ay!")) {
                    message.setText("Your password is incorrect!");
                    message.setTextFill(Color.rgb(210, 39, 30)); //Red
                } else {
                    message.setText("Your password has been confirmed");
                    message.setTextFill(Color.rgb(21, 117, 84)); //Green
                }
                pwBox.clear();
            }

        });

当我故意输入错误的密码时,代码会打印成红色,如果我再次输入,颜色实际上会变深,如果我输入正确的密码,它只会覆盖上一条消息。是否有简单的方法将消息从网格中删除?

尝试在条件流之前添加message.setText,如下所示:

        pwBox.setOnAction(new EventHandler<ActionEvent>() {
        public void handle(ActionEvent e) {
            Label message = new Label();
            grid.add(message, 1, 7);
            message.setText("");

            if (!pwBox.getText().equals("T2f$Ay!")) {
                message.setText("Your password is incorrect!");
                message.setTextFill(Color.rgb(210, 39, 30)); //Red
            } else {
                message.setText("Your password has been confirmed");
                message.setTextFill(Color.rgb(21, 117, 84)); //Green
            }
            pwBox.clear();
        }

    });
每次用户在pwBox中按Enter键时,都会调用handle方法。这意味着每次发生这种情况时,您都会创建一个全新的标签,并将其添加到网格中的同一单元格中,将其放置在先前放置在该单元格中的任何内容之上

相反,只需创建一次标签,并在事件处理程序中更新其文本:

        final Label message = new Label();
        grid.add(message, 1, 7);
        pwBox.setOnAction(new EventHandler<ActionEvent>() {

            public void handle(ActionEvent e) {

                if (!pwBox.getText().equals("T2f$Ay!")) {
                    message.setText("Your password is incorrect!");
                    message.setTextFill(Color.rgb(210, 39, 30)); //Red
                } else {
                    message.setText("Your password has been confirmed");
                    message.setTextFill(Color.rgb(21, 117, 84)); //Green
                }
                pwBox.clear();
            }

        });