Цель этой программы - собирать опросы пользователей. Когда пользователь заполняет 3 текстовых поля, он должен нажать «Отправить». Если все 3 текстовые поля заполнены, текст появится прямо под кнопкой отправки. Если какое-либо из трех полей пустое и пользователь нажимает кнопку «Отправить», он получит сообщение об ошибке (текст).Обновление экрана после нажатия кнопки
Таким образом, проблема заключается в том, что текст «Успех» и текст «Ошибка» перекрываются. Например, если я не могу представить обзор в первый раз, но получить это право во второй раз, мой экран заканчивает тем, как это:
Я использую 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);
Вы можете просто использовать тот же текст и установить содержимое строки, а также лучше использовать память ... – GhostDerfel
Я пробовал использовать ту же строку и просто .setText в зависимости от случая, но это не сработало. – Gregg1989
И если вы попытаетесь установить видимость текстового поля? Извините, так как держитесь за такой подход ... – GhostDerfel