Java 按下按钮后更新屏幕
该计划的目的是收集用户的调查结果。用户填写3个文本字段后,必须单击提交。如果填写了所有3个文本字段,则“提交”按钮的正下方将显示一个文本。如果3个字段中的任何一个为空,并且用户单击submit,他将得到一个错误(文本) 因此,问题在于“成功”文本和“错误”文本重叠。例如,如果我第一次无法提交调查,但第二次却做对了,我的屏幕最终会显示如下: 我正在使用网格窗格来布局这个场景 您可以在下面看到源代码Java 按下按钮后更新屏幕,java,android,text,grid,javafx,Java,Android,Text,Grid,Javafx,该计划的目的是收集用户的调查结果。用户填写3个文本字段后,必须单击提交。如果填写了所有3个文本字段,则“提交”按钮的正下方将显示一个文本。如果3个字段中的任何一个为空,并且用户单击submit,他将得到一个错误(文本) 因此,问题在于“成功”文本和“错误”文本重叠。例如,如果我第一次无法提交调查,但第二次却做对了,我的屏幕最终会显示如下: 我正在使用网格窗格来布局这个场景 您可以在下面看到源代码 public void handle(ActionEvent event) { try {
public void handle(ActionEvent event) {
try {
FileWriter stream = new FileWriter("out.txt");
BufferedWriter out = new BufferedWriter(stream);
Text error = new Text("Error. Make sure all fields are filled out.");
Text success = new Text("Survey submitted. Thank you!");
//Save the survey only if all text fields are filled out.
if (!fullName.getText().contentEquals("") && !email.getText().contentEquals("") && !comment.getText().contentEquals("")) {
out.write("Name: " + fullName.getText());
out.write("\tEmail: " + email.getText());
out.write("\tComment: " + comment.getText());
out.close();
success.setFont(new Font("Ariel", 15));
success.setFill(Color.GREEN);
grid2.add(success, 0, 13,3,4);
} else {
error.setFont(new Font("Ariel", 15));
error.setFill(Color.RED);
grid2.add(error, 0, 13,3,4);
}
} catch (IOException ex) {
System.out.println("ERROR SAVING FILE.");
}
}
});
grid2.add(submitButton, 0, 11);
我们在聊天中找到了解决方案,问题是他在操作手柄上添加文本字段,而正确的方法是更新操作手柄上的内容,并使用屏幕上的其他元素创建文本或标签字段:)您可以使用相同的文本并设置字符串内容,对于内存消耗也更好…我尝试使用相同的字符串和.setText,具体取决于大小写,但不幸的是,它也不起作用。如果您尝试设置文本字段的可见性?很抱歉,为了保持这种不切实际的方法…是的,我尝试了执行.setVisible(false),这取决于具体情况,但它仍然不起作用。刚刚找到一个使用标签而不是文本的示例,我认为这正是您正试图执行的操作: