JavaFX 8用のカスタムカラーピッカーコントロールを作成しました。これは、GridPane
の6個のSlider
と、その上にそれぞれLabel
sがあります。私はピッカー、ラベルテキストのオーバーフローを絞り込む今ラベルのカスタムオーバーランスタイルの定義
<GridPane vgap="10" hgap="10">
<Label labelFor="${redSlider}" text="Red"
GridPane.rowIndex="0" GridPane.columnIndex="0" GridPane.halignment="CENTER"/>
<!-- 5 more labels -->
<Slider max="255" orientation="VERTICAL" fx:id="redSlider" id="redSlider"
GridPane.rowIndex="1" GridPane.columnIndex="0" GridPane.vgrow="ALWAYS"
GridPane.hgrow="ALWAYS" GridPane.halignment="CENTER"/>
<!-- 5 more Sliders -->
</GridPane>
、。私はここに起こるしたいのですがどのような
は、テキストが彼らの最初の文字R
、G
、B
、H
、S
、L
の代わりに、楕円形でクリッピングされたバージョンに変更するだろうということです。
Label
のtextOverrun
プロパティはOverrunStyle
で定義された7つの値にオーバーフローモードを設定することができますが、それらのどれも私が探しているものと一致しません。
Label
クラス内を見ると、表示されるテキストはSkin
で計算されます。私のJDKでは、これはcom.sun.javafx.scene.control.skin.LabeledSkinBase.updateDisplayedText()
に直進し、com.sun.javafx.scene.control.skin.Utils.computeClippedText()
を呼び出します。 Label
を移植することができないので、このようなものを修正するのは簡単な方法ではありません。基本的にLabel
のUIの完全実装であるSkin
全体を再実装する必要があります。
独自のSkin
を実装するよりも、他のあふれたときに、単一の文字にLabel
s'はテキストの契約をするポータブル方法はありますか?
更新:私は@VGRのanswerを再利用可能なクラスとして実装しました。あなたはここでそれを得ることができます。このことができます(ただし、それはいくつかの改善が必要である)https://bitbucket.org/snippets/Pietu1998/LEqXo
ありがとうございます。私は再利用可能なクラスとして書き直しました。 MITライセンスのスニペットとしてあなたに帰属させて結果を公開してもらえますか? – Pietu1998
@ Pietu1998私はまったく気にしません。 – VGR
[結果は次のとおりです。](移植のための) – Pietu1998