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表示是单击

  • 相关阅读:
    【noip2014】解方程
    2013南大专业课试题答案
    如何计算多边形面积
    坐标转换成点
    几何对象和空间参考
    StoryBoard(动画故事版)
    五种画刷
    SL的六种变换
    SL中MediaElement(视频播放)
    SL的四种样式
  • 原文地址:https://www.cnblogs.com/jiading/p/12354000.html
Copyright © 2011-2022 走看看