java - 关于javafx表格 View

标签 java javafx javafx-tableview

我想自定义tableview的按钮,但是在initialize方法中获取show-hide-columns-button时按钮是空的。有一种方法可以获取显示隐藏列按钮。

    @FXML
    private TableView tableView;

    @Override
    public void initialize(URL location, ResourceBundle resources) {
        tableView.setTableMenuButtonVisible(true);
        final Node showHideColumnsButton = tableView
                .lookup(".show-hide-columns-button");
        System.out.println(showHideColumnsButton);
    }

最佳答案

正如评论中所提到的,如果 Scene 尚未显示,则调用 lookup(".show-hide-columns-button") 将返回 null。一个简单的解决方案:

tableView.sceneProperty().addListener((observable, oldScene, newScene) -> {
    if (newScene != null) {
        newScene.windowProperty().addListener((obs, oldWindow, newWindow) -> {
            if (newWindow != null) {
                newWindow.addEventHandler(WindowEvent.WINDOW_SHOWN, event -> {
                    final Node showHideColumnsButton = tableView.lookup(".show-hide-columns-button");
                    // Customize your node here...
                    showHideColumnsButton.setStyle("-fx-background-color: red;");
                    event.consume();
                });
            }
        });
    }
});

关于java - 关于javafx表格 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56404070/

相关文章:

java - 如何扩展Java注解?

java - 如何固定边框节点?

应用程序启动中的JavaFX简单按钮异常?

2d 场景中的 JavaFX 3d 子场景

JavaFX TableView : Rapid change in items list not reflected

java - 我的 JavaFX 应用程序出现 ClassCasting 错误以及 tableView 上显示值的问题

java - 能否将 JMS 持久订户分组以实现 HA?

java - 从java文件创建过程/表

java - 在 Json 中映射具有公共(public)属性和动态名称的数组

java - 每个单元格等于一个对象而不是行的表格