从ListView获取所选元素

时间:2012-11-07 06:03:41

标签: java gridview javafx-2

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

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

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

3 个答案:

答案 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的属性,我发现它很方便。

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