从相应的列标题节点获取 javafx TableColumn

2023-12-30

我正在替换表列的 javafx 上下文菜单。上下文菜单将允许用户访问 Excel,例如过滤表视图。 一切正常,但我现在不想在列标题上的任何鼠标单击事件上打开上下文菜单。不仅仅是标准的右键单击。

这里的问题是,你只能通过父表视图中的lookupAll()来获取头节点。 由于事实是,只有在呈现表视图后才可以进行查找,因此我使用 Platform.runLater(..) 调用此方法。

表视图类:

private void setHeaderNodesEventHandler() {
    int i = 0;
    for (final Node headerNode : lookupAll(".column-header")) {
        ((AbstractFilterableTableColumn<E, ?>) getColumns().get(i)).setHeaderNodeEventHandler(headerNode);
        i++;
    }
}

表列类:

public void setHeaderNodeEventHandler(final Node headerNode) {
    headerNode.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>(){

        @Override
        public void handle(final MouseEvent e) {
            contextMenu.show(headerNode, e.getScreenX(), e.getScreenY());
        }
    });
}

这里的问题是,我必须相信,找到的 headerNode 的顺序与列相同。我真的不需要这里发生任何不好的事情。

我宁愿有类似的东西(见下文),这是不可能的,因为我无法从 Parent 转换到我的 AbstractFilterableTableColumn。

    private void setHeaderNodesEventHandler() {
        for (final Node headerNode : lookupAll(".column-header")) {
            final AbstractFilterableTableColumn<E, ?> column = (AbstractFilterableTableColumn<E, ?>) headerNode.getParent();
            column.setHeaderNodeEventHandler(headerNode);
        }
    }

您是否有任何想法可以在不信任顺序的情况下获取 headerNodes 及其各自的表列?

因此,如果有人能解决我的问题……我将非常感激。 :)


当您创建列时,请使用Label作为图形而不是设置文本。然后你可以注册你需要的鼠标监听器Label。我还没有对此进行测试,但以下几行应该有效:

TableColumn<S, T> column = new TableColumn<S, T>();
Label columnHeader = new Label("Column Name");
column.setGraphic(columnHeader);

// note you can pass your TableColumn to the setHeaderNodeEventHandler(...)
// method too, so you can access the actual column represented if you need
setHeaderNodeEventHandler(columnHeader);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从相应的列标题节点获取 javafx TableColumn 的相关文章

随机推荐

  • 如何在 onSaveInstanceState() 中存储值并检索?

    我试图将数组列表的值存储在onSavedInstanceState 并在 onCreate 方法中获取数组列表中的值 但它会引发类似无法暂停活动的错误 这是我的代码 public void onSaveInstanceState Bundl
  • NServiceBus Bus.Send().Register(callback) 不适用于 IIS/Windows Server 2008

    我已经为这个问题苦苦挣扎了几天 但我似乎无法弄清楚 我有一个托管在 IIS 和 Windows Server 2008 R2 上的简单 WCF Web 服务 Web Service的实现如下 var completionResult new
  • 如何使用新的Spring Security AuthorizationManager?

    Spring Security 已将 AccessDecisionManager 和 AccessDecisionVoter 这两个类替换为 AuthorizationManager 很不错 不幸的是 Spring Security 团队再
  • 如何按顺序将计数器写入文件?

    我需要按照出现次数最多到最少出现的顺序向文件写入一个计数器 但我遇到了一些麻烦 当我打印计数器时 它会按顺序打印 但是当我打电话时counter items 然后将其写入一个文件 它会乱序写入它们 我正在尝试使其成为这样 word 5 wo
  • 从 HIVE UDF 读取 HDFS 文件 - 执行错误,返回代码 101 FunctionTask。无法初始化类

    我们一直在尝试创建一个简单的 Hive UDF 来屏蔽 Hive 表中的某些字段 我们使用外部文件 放置在 HDFS 上 来抓取一段文本 以便对屏蔽过程进行加盐 看起来我们一切正常 但是当我们尝试创建外部函数时 它会抛出错误 org apa
  • 使用带有 ADFS 的系统登录 iOS 应用程序

    我有兴趣制作一个登录到使用 ADFS 和 SAML 单点登录的系统的应用程序 现在我很高兴阅读它 我只是想知道是否有任何特定于 iOS 平台的东西以及它如何集成 甚至可能与演示应用程序集成 我找到了这个网站 使用 SAML 和 OAuth
  • MonoMac 是否已被弃用?

    MonoMac 的页面似乎已被放弃 它的最后一次更新似乎是在几年前 因为它说 Mountain Lion 是 新 操作系统 AppKit 的新 Lion 和 Mountain Lion API MonoMac在Xamarin Studio中
  • 将 Angular 1 服务注入 Angular 4

    使用概述的过程here https angular io docs ts latest guide upgrade html making angularjs dependencies injectable to angular 我正在尝试
  • 奇怪的结果 javascript 比较

    我有一个关于 javascript 的入门级问题 当执行以下命令时 结果是 false true有些数字是相等的数 数 号码号码号码 为什么前两个值不同 为什么第一个是错误的 JS function sort3 a b c document
  • 如何向老板解释代码/资源优化的重要性?

    啊啊啊每次都好郁闷 我们的托管公司有一个专用服务器 每次我必须写下一个新应用程序 或添加到预先存在的应用程序 时 我都会 损失 一些时间来优化许多行为的代码 减少数据库查询 优化数据库结构 减少带宽等 取决于应用程序应该执行的操作 显然 重
  • 进行更改后将 Power BI 嵌入报表保存在数据库中

    我正在使用 power bi 嵌入式包来嵌入 power bi 报告 https github com microsoft powerbi client react https github com microsoft powerbi cl
  • 在 Swing 中未按下鼠标的组件上监听鼠标释放事件

    是否可以监听未按下鼠标的组件上的鼠标释放事件 我知道当鼠标被释放时MouseListener mouseReleased 当鼠标按下时 即使光标位于其他组件上方 也会在该组件的侦听器上调用 如何通知组件或其侦听器鼠标位于其上方并且已释放 如
  • 当 UITableView 高度改变时更新其他元素的约束

    我有一个UITableView其中我在自动布局中将高度定义为 200 基于此 我在其下面布置了其他元素 例如UITextField等等 之后在运行时我从服务器获取数据并填充UITableView因此我正在更新UITableView的高度基于
  • 如何将 std::enable_if 与自推导返回类型一起使用?

    C 14 http en wikipedia org wiki C 14 Function return type deduction将具有可以根据返回值推断其返回类型的函数 auto function return hello world
  • 是否可以将泛型类的后代移至实现部分?

    我想从接口部分清除具体类 但编译器不允许这样做 是否有机会使外部代码无法寻址具体类 unit Unit2 interface uses System SysUtils System Generics Collections System W
  • 有没有办法将数据从网络服务器推送到浏览器?

    我当然知道Ajax 但Ajax的问题 是浏览器要频繁轮询服务器以查找是否有新数据 这会增加服务器负载 除了频繁轮询服务器之外 还有其他更好的方法 甚至使用 Ajax 吗 是的 您要找的是 COMEThttp en wikipedia org
  • Angular 在 angular.bootstrap 之后添加模块

    我正在使用流星 角度 我的目的是在应用程序引导之后添加更多依赖项 这是因为该包是在开始时处理引导的包 我对它没有太多控制权 现在 在这样做的同时 我还想强制执行一种基本的代码结构 例如 我将在一个模块中编译所有控制器 基本思想如下 use
  • 在for循环php中生成动态变量名称

    我正在尝试在 php for 循环中动态生成变量名称 我想在 for 循环中调用函数并希望传递迭代值 我尝试的是 for i 1 j 1 i lt 16 i j a arrtreelevel 1 b 0 newname a j b echo
  • Sendgrid 动态模板从锚标记中剥离 HREF

    我有一个动态电子邮件模板 用于向用户发送唯一的令牌链接以重置其密码 我将链接分配给请求对象中个性化的dynamic template data 部分中名为 link 的字段 当我收到电子邮件时 我的锚标记没有 href 属性 这是我的请求对
  • 从相应的列标题节点获取 javafx TableColumn

    我正在替换表列的 javafx 上下文菜单 上下文菜单将允许用户访问 Excel 例如过滤表视图 一切正常 但我现在不想在列标题上的任何鼠标单击事件上打开上下文菜单 不仅仅是标准的右键单击 这里的问题是 你只能通过父表视图中的lookupA