javafx - 如何将上下文菜单添加到空 TableView 的标题行?

标签 javafx javafx-8

我有一个 TableView。如果它有列,我可以向列添加上下文菜单,当我右键单击列标题时会出现菜单。

如何将上下文菜单添加到为空表显示的空白栏?截图:

enter image description here

最佳答案

这可以通过直接访问 TableView 的内部结构来完成,我不知道有任何官方 API 可以做到这一点。

official TableView CSS命名一个 column-header-background 类,然后我们可以通过 Node#lookup() 访问它方法。

一个例子

public class ContextMenuOnTableHeader extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        TableView<String> table = new TableView<>();
        Scene scene = new Scene(table);
        primaryStage.setScene(scene);
        primaryStage.setWidth(200);
        primaryStage.setHeight(200);

        primaryStage.show();

        Node header = table.lookup(".column-header-background");
        header.setOnContextMenuRequested(event -> {
            ContextMenu menu = new ContextMenu();
            menu.getItems().add(new MenuItem("Mr Horse"));
            menu.show(header, event.getScreenX(), event.getScreenY());
        });
    }

}

关于javafx - 如何将上下文菜单添加到空 TableView 的标题行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47786125/

相关文章:

javafx - 在 Redhat 5 上运行 JavaFX 应用程序

JavaFX 8 : Putting a default "x" mark via css if the checkbox is deselected

Java fx 程序运行并编译但不显示可见的 GUI

colors - 如何修改javafx colorpicker?

ubuntu - intellij idea - Javafx css 文件 : no suggestions

JavaFX 拖放交互对象

Java FX 8 - Tableview 在对象中显示对象

java - 如何防止javafx中SrollPane自动滚动

java - 具有打包的 Maven 依赖项的 IntelliJ JavaFX 构建 Artifact

java - 我怎样才能处理一个按钮上的两个 Action ?