19

ListView使用数据库搜索的结果修改 a,以便稍后使用该选择发出另一个数据库请求。

我想得到那个的字段值ListView。我可以使用什么方法呢?

我只是想我也可以添加一个事件onclick并将其保留在控制器的属性上。这也可以接受吗?

4

3 回答 3

52

用这样的列表视图说:

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);
    }
});
于 2012-11-07T13:32:39.563 回答
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());
        }
 });
于 2017-12-01T09:02:08.317 回答
0

JFXtras 有一个扩展 ListView 的类,它有一个名为 selectedItemProperty 的属性,我发现它很方便。

http://jfxtras.org/overview.html#_listview

于 2018-09-05T15:10:17.370 回答