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