如何强制我的用户从ListViewer中进行选择?

时间:2016-10-19 13:12:59

标签: java javafx scenebuilder

我的问题是即使用户没有在listViewer中进行选择,我的程序仍会创建一个引用为“null”的对象。如何删除对象,甚至更好,如果没有选择,我如何使其无法继续?

只要我在列表中选择一个项目,该程序就可以正常运行。如果您需要更多信息或代码,请告诉我们!

编辑:显然我提供了关于我的问题的小信息。让我们说ListView选择提供“Driver1”。如果我点击“预订”按钮,新预订会将Driver1作为驱动程序。但是,如果我只输入“预订”按钮,我将获得“null”作为驱动程序

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

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

1 个答案:

答案 0 :(得分:1)

getSelectedIndex() will return -1 if nothing is selected (see documentation). So you can do

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

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

Alternatively, it might be more convenient to use getSelectedItem() (depending on what your createBooking method is doing). That method will return null if nothing is selected:

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

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

where MyDataType is the data type for your ListView.