我使用数据库搜索的结果修改ListView
,以便稍后使用该选择发出另一个数据库请求。
我想获得ListView
的字段值。我可以使用什么方法?
我只是想我也可以向onclick
添加一个事件并将其保存在控制器的属性上。那也可以接受吗?
答案 0 :(得分:40)
用这样的列表视图说:
ListView<String> listView =new ListView<String>();
从ListView中获取所选元素:
listView.getSelectionModel().getSelectedItem();
跟踪(聆听)列表视图选择中的更改:
listView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
System.out.println("ListView selection changed from oldValue = "
+ oldValue + " to newValue = " + newValue);
}
});
答案 1 :(得分:0)
您可以创建自定义事件处理程序,首先创建一个类来处理鼠标事件。
import javafx.event.EventHandler;
import javafx.scene.input.MouseEvent;
class ListViewHandler implements EventHandler<MouseEvent> {
@Override
public void handle(MouseEvent event) {
//this method will be overrided in next step
}
}
上课后,前往您希望事件发生的地方
list.setOnMouseClicked(new ListViewHandler(){
@Override
public void handle(javafx.scene.input.MouseEvent event) {
System.out.print(list.getSelectionModel().getSelectedIndex());
}
});
答案 2 :(得分:0)
JFXtras有一个扩展ListView的类,该类具有一个名为selectedItemProperty的属性,我发现它很方便。