Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.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
Java 按下按钮后更新屏幕_Java_Android_Text_Grid_Javafx - Fatal编程技术网

Java 按下按钮后更新屏幕

Java 按下按钮后更新屏幕,java,android,text,grid,javafx,Java,Android,Text,Grid,Javafx,该计划的目的是收集用户的调查结果。用户填写3个文本字段后,必须单击提交。如果填写了所有3个文本字段,则“提交”按钮的正下方将显示一个文本。如果3个字段中的任何一个为空,并且用户单击submit,他将得到一个错误(文本) 因此,问题在于“成功”文本和“错误”文本重叠。例如,如果我第一次无法提交调查,但第二次却做对了,我的屏幕最终会显示如下: 我正在使用网格窗格来布局这个场景 您可以在下面看到源代码 public void handle(ActionEvent event) { try {

该计划的目的是收集用户的调查结果。用户填写3个文本字段后,必须单击提交。如果填写了所有3个文本字段,则“提交”按钮的正下方将显示一个文本。如果3个字段中的任何一个为空,并且用户单击submit,他将得到一个错误(文本)

因此,问题在于“成功”文本和“错误”文本重叠。例如,如果我第一次无法提交调查,但第二次却做对了,我的屏幕最终会显示如下:

我正在使用网格窗格来布局这个场景

您可以在下面看到源代码

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),这取决于具体情况,但它仍然不起作用。刚刚找到一个使用标签而不是文本的示例,我认为这正是您正试图执行的操作: