我有一个应用程序,其中将基于数据库查询动态创建TableView
。这意味着我的应用程序将具有多个具有不同列的表。
我必须显示一个单独的按钮来显示/隐藏列。我熟悉用table.setTableMenuButtonVisible()
触发的表格菜单按钮。不幸的是,尽管我想使用它的功能,但我无法使用UI上实际的屏幕内置按钮。
我本质上是在寻找 table.getTableMenu().show()
有点电话。但是我找不到这是任何一种内置方法。有没有一种方法可以从我自己设计的UI按钮调用此按钮的动作?
答案 0 :(得分:3)
实际上,我的评论是错误的:可以查找角区域并触发其mousePressedHandler而不进行反射。
以下代码段打开了角落菜单,就像直接单击一样(至少在fx11中,并且仍然依赖于由mousePressed事件触发打开的实现细节):
Button showCorner = new Button("open menu button");
showCorner.addEventHandler(MouseEvent.MOUSE_PRESSED, e -> {
Node corner = table.lookup(".show-hide-columns-button");
corner.fireEvent(e);
});