【问题标题】:How to get row number in TableView at specific point?如何在特定点获取 TableView 中的行号?
【发布时间】:2012-12-18 10:31:05
【问题描述】:

我正在 JavaFX 中创建 TableView。我想在鼠标右键单击时显示Context Menu。所以我正在做如下给出的。

    EventHandler event = new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent me) {
            if (me.getButton() == MouseButton.SECONDARY) {
                tableView.getContextMenu().show(tableView, me.getSceneX(), me.getSceneY());
            }
        }
    };
    tableView.addEventHandler(MouseEvent.MOUSE_CLICKED, event);

但我想这样做Context Menu 应该只有在我单击TableView 中的任何行时才可见。 即我如何在特定点获取 TableView 中的行号,这样我的Context Menu 应该只有在我点击TableView 的任何行时才可见。

【问题讨论】:

    标签: java tableview javafx-2 javafx


    【解决方案1】:

    如果不强制需要行号,我可以建议一些不同的解决方案。

    每个节点都有一个方法Node.getChildrenUnmodifiable(),它返回直接子节点的列表。

    完成递归搜索后,使用该方法的递归调用节点 -> 子节点 -> 子子节点等,您可以找到 com.sun.javafx.scene.control.skin.VirtualFlow 类的对象。

    那是一个 Node 和 Parent,负责渲染单元格(即包含滚动条并向您显示单元格的东西 - tableView 的内容)。

    您可以调用 setOnMouseClick(...) 并为其设置处理程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-06
      • 2014-10-04
      • 2017-07-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多