2014-01-06 194 views
0

該程序的目的是收集用戶的調查。一旦用戶填寫了3個文本字段,他必須點擊提交。如果填寫了所有3個文本字段,則文本將顯示在提交按鈕的正下方。如果3個字段中的任何一個都爲空,並且用戶單擊提交,他將會收到一個錯誤(文本)。按下按鈕後更新屏幕

所以,問題是「成功」文本和「錯誤」文本重疊。例如,如果我沒能提交調查的第一次,但得到它在第二次,我的屏幕最終看起來像這樣:

enter image description here

我使用的是GridPane爲佈局這一幕。

您可以在下面看到源代碼。

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); 
+0

你可以只使用相同的文本和設置字符串的內容,也更好的內存消耗... – GhostDerfel

+0

我試着使用相同的字符串,只是.setText取決於大小寫,但不幸的是,它不工作。 – Gregg1989

+0

如果您嘗試設置文本字段的可見性?對不起,爲了保持這種去馬方式... – GhostDerfel

回答

2

我們發現在我們聊天的解決方案,問題是,他的動作手柄添加文本字段時,正確的做法是更新的動作處理內容,並有文字或標籤字段創建與屏幕上的其他元素:)