Java 从ListView获取所选元素

Java 从ListView获取所选元素,java,gridview,javafx-2,Java,Gridview,Javafx 2,我使用数据库搜索的结果修改了一个列表视图,以便稍后使用该选择来发出另一个DB请求 我想获取该列表视图的字段值。我可以用什么方法 我只是想我还可以向onclick添加一个事件,并将其保留在控制器的属性中。这也可以接受吗?使用如下列表视图: ListView<String> listView =new ListView<String>(); 跟踪(侦听)列表视图选择中的更改: listView.getSelectionModel().selectedItemProperty

我使用数据库搜索的结果修改了一个
列表视图
,以便稍后使用该选择来发出另一个DB请求

我想获取该
列表视图的字段值。我可以用什么方法


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

使用如下列表视图:

ListView<String> listView =new ListView<String>();
跟踪(侦听)列表视图选择中的更改:

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);
    }
});
listView.getSelectionModel().SelectEditeProperty().addListener(新的ChangeListener()){
@凌驾

public void changed(observeValue您可以创建一个自定义事件处理程序,首先创建一个类来处理鼠标事件

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

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


JavaFX中没有名为GridView的控件。非常抱歉,我指的是ListView。请原谅。我查看了文档,发现以下内容:"要跟踪选择和焦点,有必要熟悉SelectionModel和FocusModel类。ListView中每个类最多有一个实例,可分别从SelectionModel和FocusModel属性获得。虽然可以使用此API设置新的选择模型,但在大多数情况下,这并不重要必要-默认的选择和焦点模型在大多数情况下都应该有效。“我查看了FocusModel,发现有一个getFocusedItem()。这就是我需要的吗?@Adil是的,有:listView.getSelectionModel()。选择(索引);超级,你救了我一天。
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());
        }
 });