2013-01-17 7 views
10

私はsのTabPaneを持っています。 Tabの操作の結果が失敗した場合は、TabLabelFill赤に設定するか、ハッシュするテクスチャを(色盲の場合は)設定します。 Colorをデフォルトに戻したい場合は、後で再設定します。JavaFXでタブラベルの色やテクスチャをプログラムで設定する方法は?

ここでの質問のいくつかを読むことで、スタイルシートを使って静的に設定することができます。

#MyTabPane .tab *.tab-label { 
    -fx-text-fill: white; 
} 

どのようにしてTablabelにアクセスし、それが動的に色/テクスチャの設定でしょうか? ELLTZ BY

tab.setStyle("??");

ADDITIONS

どのようにスタイルクラスtab-labelButtonStackPane)とLabel両方のPaintを変更するには上記のインラインスタイルを使用することができますもtab-close-button

コード例が必要

答えて

11

グラフィックスを設定し、それは私のためのトリックでしたスタイリング:

Tab tabB = new Tab(); 
tabB.setText(""); 
tabPane.getTabs().add(tabB); 
tabB.setStyle("-fx-border-color:red; -fx-background-color: blue;"); 
tabB.setGraphic(new Label("Tab B")); 
tabB.getGraphic().setStyle("-fx-text-fill: #c4d8de;"); 
+0

感謝を。意外なことに、tab1.setGraphic(imageView)、tab2.setGraphic(imageView)を実行すると、グラフィックはtab1からtab2に切り替わります。 1つのタブだけがグラフィックを持っています。 – likejiujitsu

+1

これは驚くべきことではありません。なぜなら、Nodeは常にSceneGraphで1回しか使用できないからです。 「グラフィック」は、任意のノードと同様、SceneGraphの汎用ノードです。 – Sebastian

+1

これは最初に「グラフ」と呼ばれる理由を不思議に思っています。しかし、はい、それは本当です。だから、ImageViewには親が1つしかないことは驚くことではありません。 –

関連する問題