从列表视图中获取所选元素

2022-09-02 02:36:00

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

我想得到该字段值。我可以使用什么方法?ListView

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


答案 1

像这样用列表视图说:

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);
    }
});

答案 2

您可以创建一个自定义事件处理程序,首先创建一个类来处理鼠标事件。

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());
        }
 });

推荐