zoukankan      html  css  js  c++  java
  • javafx的tableview点击功能

    javafx的tableview可以比较方便地创建出外观还行的列表,但是有一个常见的需求,就是用户点击table中的表项做选择,但是编辑器没办法实现这个需求,需要我们自己写控制器
    假设表项对象叫Stream

        @FXML
        TableView<Stream> streamListTable;
    

    然后在初始化的函数中:

    streamListTable.setRowFactory(new Callback<TableView<Stream>, TableRow<Stream>>() {
                @Override
                public TableRow<Stream> call(TableView<Stream> param) {
                    return new TableRowControl();
                }
            });
    

    然后创建一个新的类:

    class TableRowControl extends TableRow<Stream> {
            public TableRowControl() {
                super();
                this.setOnMouseClicked(new EventHandler<MouseEvent>() {
                    @Override
                    public void handle(MouseEvent event) {
                        if (event.getButton().equals(MouseButton.PRIMARY)
                                && event.getClickCount() == 1
                                && TableRowControl.this.getIndex() < streamListTable.getItems().size()) {
                            choosedStream = TableRowControl.this.getItem();//获取点击的对象
                            choosedIndex=TableRowControl.this.getIndex();//获取点击的index,就是表上的第几项
                        }
                    }
                });
            }
        }
    

    event.getClickCount() == 1表示是单击

  • 相关阅读:
    学习python第二天
    学习python第一天
    SQL操作
    JAR规范 JAR File Specification
    IDEA快捷键
    Fibonacci数列
    AnyHandler
    测试UDP
    Eclipse卡顿设置
    服务器初始化操作
  • 原文地址:https://www.cnblogs.com/jiading/p/12354000.html
Copyright © 2011-2022 走看看