2017-08-24 16 views
0

任意の応答を取得していない、すべては私がテキスト上でマウスを移動していない限り動作しますが、ツールチップが表示されません。JavaFXのテキストツールチップマウスオーバーは、私は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

"これはこのテキストのツールチップを作成するfxmlコードです。"いいえ:['Text'](http://docs.oracle.com/javase/8/javafx/api/javafx/scene/text/Text.html)の' @ DefaultProperty'は 'text'プロパティですが、これは、テキストを指定されたツールチップに設定しようとします。 'Text'は' setTooltip(...) 'メソッドを持っていません:コントローラで[' Tooltip.install(...) '](http://docs.oracle.com/ javase/8/javafx/api/javafx/scene/control/Tooltip.html#install-javafx.scene.Node-javafx.scene.control.Tooltip-)。 'setTooltip'を持つ' Label'を使うことができるので、FXMLで設定することができます。 –

+0

テキストではなく、ラベルはいを使うべきですか? –

+0

あなたが必要とするものに対して 'Label'が動作するかどうか。もちろん、コントローラーのツールチップを設定するだけです。 –

答えて

0

FXMLでは、1つのインスタンス要素をプロパティ要素なしで直接埋め込み、外側のインスタンス要素に@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はありません)。

あなたの他のオプションそれが動作するかどうか、LabelTextを置き換えるために、次のようになります。TextがするようLabelは、あなたが直接strokeを設定することはできませんので、あなたがすることを

<Label layoutX="329.0" layoutY="202.0" text="Tcond[C]" textAlignment="CENTER"> 
    <tooltip> 
     <Tooltip text="'%Empty_Bundle'"/> 
    </tooltip> 
</Label> 

は注意その機能を失う(あるいは少なくともCSSを使わなければならない)。

+0

いいえ、それは動作する、私はラベルに変更して追加する必要があった

関連する問題