gpt4 book ai didi

javafx - 如何向未使用 FXML 实现 Control 的节点添加工具提示?

转载 作者:行者123 更新时间:2023-12-04 11:21:27 24 4
gpt4 key购买 nike

Control 的 JavaFX 子类中有一个工具提示属性,这意味着可以声明性地添加 Tooltip因此使用 FXML:

<CheckBox fx:id="someCheckBox" mnemonicParsing="false" text="Do It?">
<tooltip>
<Tooltip text="Whether or not to do it."/>
</tooltip>
</CheckBox>

这是可能的,因为 CheckBox是 Control 的子类。

但是,我希望能够使用 FXML 向任何场景图节点添加工具提示(即无需使用 Java 以编程方式添加工具提示)。

最佳答案

有一个archived discussion在 Oracle 社区论坛上建议包装 Node内部 ScrollPane并在 ScrollPane 上设置工具提示。这不太理想,因为它向场景图中添加了一个不必要的节点,但更重要的是,它在所有场景中都无法正常工作。考虑尝试向 TitledPane 的图形添加工具提示:

<TitledPane text="My TitledPane" fx:id="someTitledPane" expanded="true" contentDisplay="RIGHT">
<graphic>
<ScrollPane fitToWidth="true" fitToHeight="true" style="-fx-background-color: rgba(255, 255, 255, 0);">
<ImageView fitWidth="24.0" fitHeight="24.0" preserveRatio="true" pickOnBounds="true">
<image>
<Image url="/images/questionMark.jpg" />
</image>
</ImageView>
<tooltip>
<Tooltip text="My tooltip."/>
</tooltip>
</ScrollPane>
</graphic>
<Label text="Hello!"/>
</TitledPane>

尽管 ScrollPane 具有透明背景,但在问号图形后面仍然有一个可见的白框:

ScrollPane leaves white background - not ideal!

有一种方法可以解决这个问题,那就是利用 <fx:script> 的力量。 :
<?language javascript?>

<TitledPane text="My TitledPane" fx:id="someTitledPane" expanded="true" contentDisplay="RIGHT">
<graphic>
<ImageView fx:id="questionMarkImageView" fitWidth="24.0" fitHeight="24.0" preserveRatio="true" pickOnBounds="true">
<image>
<Image url="/images/questionMark.jpg" />
</image>
</ImageView>
<fx:script>
var tooltip = new javafx.scene.control.Tooltip('My tooltip');
javafx.scene.control.Tooltip.install(questionMarkImageView, tooltip);
</fx:script>
</graphic>
<Label text="Hello!"/>
</TitledPane>

请注意 fx:id的 ImageView 是在脚本内部引用的(我没有在任何地方看到此功能的文档,只能通过实验找到它 - 这实际上促使我发布此问答,希望其他人会发现它有用)。结果如下:

No white background and one less node in scene-graph - ideal!

关于javafx - 如何向未使用 FXML 实现 Control 的节点添加工具提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36950542/

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