#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
.