最佳答案
这可以通过直接访问 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/