我想自定义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/