У меня есть кусок кода, форма входа в JavaFX. Это всего лишь прототип, и он основан на учебнике, который не охватывает такую тему. Я хочу добавить проверку TextField, я сделал это так:
Button btn = new Button("Login");
HBox hBtn = new HBox(10);
hBtn.setAlignment(Pos.BOTTOM_RIGHT);
hBtn.getChildren().add(btn);
grid.add(hBtn, 1, 4);
final Text actiontarget = new Text();
grid.add(actiontarget, 1, 6);
if (userTextField.getText().trim().isEmpty() && !pwField.getText().trim().isEmpty()) {
btn.setOnAction(event
-> {
actiontarget.setFill(Color.FIREBRICK);
actiontarget.setText("No login provided!");
});
} else if (pwField.getText().trim().isEmpty() && !userTextField.getText().trim().isEmpty()) {
btn.setOnAction(event
-> {
actiontarget.setFill(Color.FIREBRICK);
actiontarget.setText("Please provide a password!");
});
} else if (userTextField.getText().trim().isEmpty() && pwField.getText().trim().isEmpty()) {
btn.setOnAction(event
-> {
actiontarget.setFill(Color.FIREBRICK);
actiontarget.setText("Please provide login and password!");
});
} else {
btn.setOnAction(event
-> {
actiontarget.setFill(Color.GREEN);
actiontarget.setText("Login succesfull");
});
}
Проблема в том, что этот код ВСЕГДА возвращает текст из 3-го условия: Please provide login and password!
, ввод в эти поля не имеет значения. Я могу предоставить только пароль, только логин, оба или ни один из двух, результат всегда будет одинаковым.
Я что-то здесь упускаю? Это (очень) неправильный подход? Или я просто устал и должен идти спать?
ура!