gpt4 book ai didi

java - 在 TableColumn(JavaFX) 上设置工具提示,没有副作用

转载 作者:行者123 更新时间:2023-12-01 09:28:56 25 4
gpt4 key购买 nike

有一种方法可以像这样设置工具提示

if (tooltipText != null) {
Label lb = new Label(column.getText());
lb.setTooltip(new Tooltip(tooltipText));
column.setText(null);
column.setGraphic(lb);
}

不幸的是,这样就会存在丑陋的副作用。

Empty names in table's menu

我们将列的文本设置为null,但menuItems 调用column.getText()。如果不这样做,标题中就会出现重名,如何解决?假设通过css..

这个答案并不能消除副作用 How to add a tooltip to a TableView header cell in JavaFX 8

最佳答案

注意:以下代码依赖于 TableView 皮肤的内部结构。这些可能会发生变化,因为它们位于 com.sun 包中。

CSS 查找可用于在 TableView 上第一次布局传递后访问 TableColumnHeader 节点。这些可用于检索用于显示 TableColumntext 属性的 Label

@Override
public void start(Stage primaryStage) {
TableView tv = createTableView();

Scene scene = new Scene(tv);

// generate layout pass
tv.applyCss();
tv.layout();

// assign tooltips to headers
tv.lookupAll(".column-header").stream().forEach(n -> {
TableColumnHeader header = (TableColumnHeader) n;
Tooltip tooltip = new Tooltip("Tooltip: " + header.getTableColumn().getText());
((Control) header.lookup(".label")).setTooltip(tooltip);
});

primaryStage.setScene(scene);
primaryStage.show();
}

关于java - 在 TableColumn(JavaFX) 上设置工具提示,没有副作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39611934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com