Как мне заставить моего пользователя сделать выбор из ListViewer?

#java #javafx #scenebuilder

#java #javafx #scenebuilder

Вопрос:

Моя проблема в том, что даже если пользователь не делает выбор в listViewer, моя программа все равно создает объект со ссылкой «null». Как я могу удалить объект или, что еще лучше, как мне сделать так, чтобы он не мог продолжить, если выбор не сделан?

Программа отлично работает, пока я выбираю элемент в списке. Дайте мне знать, если вам нужна дополнительная информация или код!

РЕДАКТИРОВАТЬ: Очевидно, я предоставил немного информации о моей проблеме. Допустим, выбор в ListView предоставляет «Driver1». Если я нажму кнопку «Забронировать», новое бронирование получит Driver1 в качестве драйвера. Однако, если я просто введу кнопку «Забронировать», я получу «null» в качестве драйвера

  int input = listView.getSelectionModel().getSelectedIndex();

    TaxiSystem.createBooking(dest.getText(), pass.getText(), name.getText(),input);    
  

Ответ №1:

getSelectedIndex() вернется, -1 если ничего не выбрано (см. Документацию). Итак, вы можете сделать

 int input = listView.getSelectionModel().getSelectedIndex();

if (index >=0) {
    TaxiSystem.createBooking(dest.getText(), pass.getText(), name.getText(),input);   
}
  

В качестве альтернативы, это может быть более удобно в использовании getSelectedItem() (в зависимости от того, что делает ваш createBooking метод). Этот метод вернет null , если ничего не выбрано:

 MyDataType item = listView.getSelectionModel().getSelectedItem();

if (item != null) {
    // ...
}
  

где MyDataType тип данных для вашего ListView .