Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要触发JavaFX TableView';s内置表格菜单按钮_Java_Javafx_Javafx 8 - Fatal编程技术网

需要触发JavaFX TableView';s内置表格菜单按钮

需要触发JavaFX TableView';s内置表格菜单按钮,java,javafx,javafx-8,Java,Javafx,Javafx 8,我有一个应用程序,其中将基于数据库查询动态创建表视图。这意味着我的应用程序将有多个具有不同列的表 我必须显示一个单独的按钮来显示/隐藏列。我熟悉使用table.setTableMenuButtonVisible()触发的表格菜单按钮。不幸的是,我不能使用UI上实际的屏幕内置按钮,尽管我想使用它的功能 我实际上是在寻找一个表。getTableMenu().show() 有点像电话。但我找不到这是一种内置的任何类型的方法。有没有一种方法可以从我自己设计的UI按钮调用此按钮的操作?事实上,我的评论是

我有一个应用程序,其中将基于数据库查询动态创建
表视图。这意味着我的应用程序将有多个具有不同列的表

我必须显示一个单独的按钮来显示/隐藏列。我熟悉使用
table.setTableMenuButtonVisible()
触发的表格菜单按钮。不幸的是,我不能使用UI上实际的屏幕内置按钮,尽管我想使用它的功能

我实际上是在寻找一个
表。getTableMenu().show()

有点像电话。但我找不到这是一种内置的任何类型的方法。有没有一种方法可以从我自己设计的UI按钮调用此按钮的操作?

事实上,我的评论是错误的:可以查找角区域并触发其mousePressedHandler而无需反射

下面的代码片段打开角点菜单,就像它被直接单击一样(至少在fx11中是这样,并且仍然依赖于由鼠标按下事件触发的打开的实现细节):


你看见了吗?我看见了。不幸的是,我没有使用
TableView
的可视按钮。我需要一个单独的JavaFX按钮,它与内置按钮的功能相同。我也宁愿远离com.sun软件包,除非别无选择。除了访问/扩展TableHeaderRow之外,别无选择。请将手放在默认的contextMenu上-headerRow本身位于公共皮肤软件包中(因为fx9),contextMenu只能通过反射访问。但是,我不太明白你在追求什么:在我的应用程序中调用此按钮的操作,而单独的按钮做相同的事情感觉有点矛盾?不必实现显示/隐藏方法是什么意思?只需抓取角落上下文菜单,让您的按钮显示在其上。请通过编辑问题进行澄清-评论不适用于其他详细信息:)
Button showCorner = new Button("open menu button");
showCorner.addEventHandler(MouseEvent.MOUSE_PRESSED, e -> {
    Node corner = table.lookup(".show-hide-columns-button");
    corner.fireEvent(e);
});