我在JavaFx中的文本元素上设置工具提示,只要我不将鼠标悬停在文本上,一切都有效,工具提示不会显示。
<Text layoutX="329.0" layoutY="202.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Tcond[C]" textAlignment="CENTER">
<Tooltip text="'%Empty_Bundle'"/>
</Text>
这是应该在此文本上创建工具提示的fxml代码。
如何修复它而不创建为视图控制器中的对象分配文本和使用.setTooltp()方法设置工具提示?
答案 0 :(得分:0)
在FXML中,如果将一个实例元素直接嵌入到另一个实例元素中,而没有属性元素,则用于在外部实例元素上设置注释为@DefaultProperty
的属性。
如果您检查documentation for Text
,您会看到默认属性为"text"
:因此您的FXML相当于
<Text layoutX="329.0" layoutY="202.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Tcond[C]" textAlignment="CENTER">
<text>
<Tooltip text="'%Empty_Bundle'"/>
</text>
</Text>
换句话说,您正尝试将Text
对象的文本设置为工具提示。
Text
实际上根本没有setTooltip(...)
方法;该方法在Control
类中定义,其中Text
不是子类。在Text
实例上设置工具提示的唯一方法是使用Tooltip.installTooltip(...)
method,您只能从控制器调用(没有FXML等效于调用此静态方法)。
您的其他选择,如果有效,则会将Text
替换为Label
:
<Label layoutX="329.0" layoutY="202.0" text="Tcond[C]" textAlignment="CENTER">
<tooltip>
<Tooltip text="'%Empty_Bundle'"/>
</tooltip>
</Label>
请注意,Label
不允许您像stroke
那样直接配置Text
,因此您将失去该功能(或至少必须使用CSS)。