我如何强制我的用户从 ListViewer 中进行选择?
How do i force my user to make a selection from ListViewer?
我的问题是,即使用户没有在 listViewer 中创建 selection,我的程序仍然会创建一个带有引用 "null" 的 object。我怎样才能删除 object,或者更好的是,如果 selection 没有生成,我如何让它无法继续?
只要我 select 列表中的一个项目,该程序就可以很好地工作。如果您需要更多信息或代码,请告诉我!
编辑:很明显,我提供了一些关于我的问题的信息。假设 ListView selections 提供 "Driver1"。如果我点击 "Book" 按钮,新预订将 Driver1 作为 driver。但是,如果我只输入 "Book" 按钮,我会得到 "null" 作为 driver
int input = listView.getSelectionModel().getSelectedIndex();
TaxiSystem.createBooking(dest.getText(), pass.getText(), name.getText(),input);
如果未选择任何内容,getSelectedIndex()
将 return -1
(请参阅 documentation)。所以你可以做
int input = listView.getSelectionModel().getSelectedIndex();
if (index >=0) {
TaxiSystem.createBooking(dest.getText(), pass.getText(), name.getText(),input);
}
或者,使用 getSelectedItem()
可能更方便(取决于您的 createBooking
方法在做什么)。如果未选择任何内容,该方法将 return null
:
MyDataType item = listView.getSelectionModel().getSelectedItem();
if (item != null) {
// ...
}
其中 MyDataType
是您 ListView
的数据类型。
我的问题是,即使用户没有在 listViewer 中创建 selection,我的程序仍然会创建一个带有引用 "null" 的 object。我怎样才能删除 object,或者更好的是,如果 selection 没有生成,我如何让它无法继续?
只要我 select 列表中的一个项目,该程序就可以很好地工作。如果您需要更多信息或代码,请告诉我!
编辑:很明显,我提供了一些关于我的问题的信息。假设 ListView selections 提供 "Driver1"。如果我点击 "Book" 按钮,新预订将 Driver1 作为 driver。但是,如果我只输入 "Book" 按钮,我会得到 "null" 作为 driver
int input = listView.getSelectionModel().getSelectedIndex();
TaxiSystem.createBooking(dest.getText(), pass.getText(), name.getText(),input);
getSelectedIndex()
将 return -1
(请参阅 documentation)。所以你可以做
int input = listView.getSelectionModel().getSelectedIndex();
if (index >=0) {
TaxiSystem.createBooking(dest.getText(), pass.getText(), name.getText(),input);
}
或者,使用 getSelectedItem()
可能更方便(取决于您的 createBooking
方法在做什么)。如果未选择任何内容,该方法将 return null
:
MyDataType item = listView.getSelectionModel().getSelectedItem();
if (item != null) {
// ...
}
其中 MyDataType
是您 ListView
的数据类型。