ComboBox и Условие
У меня есть вот такой вот ComboBox
Я хочу прогнать его через условие вот таким вот образом
HowMuch.setOnAction(actionEvent -> {
String prove = String.valueOf(Box1.getValue());
String prove1 = String.valueOf(Box2.getValue());
String prove2 = Money.getText();
if(!prove.isEmpty() || !prove1.isEmpty() || prove2.isEmpty()){
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/sample/Error4.fxml"));
try {
loader.load();
} catch (IOException e) {
e.printStackTrace();
}
Parent first = loader.getRoot();
Stage stage = new Stage();
stage.setScene(new Scene(first));
stage.showAndWait();
}else{
check(prove);
check2(prove1);
}
Дело в том что данные полученные полем proove из ComboBox он всегда считает пустыми не в зависимости от того что я выберу в боксе или что я не выберу то бишь всегда выдает (true) и условие не работает. Что я могу сделать что бы он понимал что я что то выбрал или ничего не выбирал. Заранее благодарен
Ответы (1 шт):
Метод .getValue() возвращает выбранный объект (строку в данном случае) или null (если ничего не выбрано), дополнительно в строку через String.valueOf() преобразовывать не нужно, причем у вас должно бросать исключение, когда в комбо ничего не выбрано (.getValue() вернул null).
Нужно убрать эту конвертацию, и для проверки на "пустоту" проверять значения на null:
String prove = Box1.getValue();
String prove1 = Box2.getValue();
String prove2 = Money.getText();
if(prove == null || prove1 == null || prove2.isEmpty()) {
// ...
}