2017-09-10 13 views
1

DefaultOptionのテキストをExtendedDescriptionに設定すると、このオプションをクリックすると、テキストがHBoxに表示され、その中央に表示されます。私はHBoxのテキストがある場所をカスタマイズしたいと思います:テキストを中心に合わせるだけでなく、テキストに色を付けるか太字のイタリック体にするか、小さな画像を追加します。DefaultOptionのExtendedDescriptionビューをカスタマイズするにはどうすればよいですか?

私は見たことがありません多分OptionEditorを除いてカスタマイズに関連するAPIにアクセスすることができますが、editorFactoryProperty()に電話しようとすると、オプションは常に空になります。私は自分自身を作り、それを設定するはずですか?そのためのプロセスは何ですか?

答えて

1

これまでのところ、拡張ビューのAPIはありません。

あなたはScenicViewでそれを確認した場合、あなたはBorderPane(ID:extended-pane)のホールドを取得するには、実行時にルックアップを使用することができますので、ビューのノードが、しかし適用されたカスタムスタイルクラスを持っていることを見ることができ、HBoxを(ID:extended-top)、中央のID(extended-center)、およびTextの子(styleClass:extended-text)の順に表示されます。このような

Extended View

何か作業をする必要があります:

viewProperty().addListener((obs, ov, nv) -> { 
     if (nv != null && nv.getName().startsWith("Extended_View_Gender")) { 
      BorderPane pane = (BorderPane) nv.lookup(".extended-pane"); 
      if (pane != null) { 
       Text text = (Text) pane.lookup(".extended-text"); 
       text.setStyle("-fx-fill: red"); 
      } 
     } 
    }); 
+0

これは、すべての拡張ビュー内のテキストが赤であることを原因となります。多分私はそれを間違っている。これは、私が個別に各オプションの拡大表示をスタイルすることになっていますか?多分、私は間違った 'viewProperty()'を呼びますか? – Mark

+0

異なる拡張ビューをカスタマイズするには、ビューの名前を確認するだけです。いずれの場合でも、拡張ビューは '' Extended_View_ "+ option.caption'とレベルに関連するいくつかのインデックスに加えて名前が付けられます。私は上記の私の答えを編集しました。 –

+0

それは良いです、ありがとう。これに対して適切なAPIを取得するようにリクエストすることはできますか? – Mark

関連する問題