2017-11-29 14 views
0

タイトルとして、TextFlowコンポーネントのすべてのテキストにデフォルトのカラーを適用できますか?JavaFX TextFlowにデフォルトのテキストカラーを設定

TextFlow textFlow = new TextFlow(); 
textFlow.setId("supertextflow"); 

// Somewhere else in the code 
textFlow.getChildren() 
    .add(new Text("Dynamic added text! OMG!")); 

私はそのテキストが別のコンポーネントである知っているが、なぜ私はそれの親からのスタイルを設定することはできません?私は別のソリューションをしようと試みたが、それらのどれも

#supertextflow { 
    -fx-text-fill: red; 
} 

#supertextflow * .text{ 
    -fx-fill: red; 
} 

#supertextflow > * > .text { 
    -fx-fill: red; 
} 

を働きませんか

答えて

1

それはあなたがJavaFX CSS Reference Guideを見ればフィルCSSルールを持っていないスタイルクラスの原因さてあなたはTextでそれを行うことはできません。ですから、私はTextを残して、代わりにLabelを使用することを提案します。あなたは、あなたは下のCSSルールを使用することができない場合は、次の場合には

#supertextflow > .label { 
    -fx-text-fill: blue; 
    -fx-font-size : 20px; 
} 

あなたはFlowPane内の特定のid各要素(テキスト)を設定する必要がありますテキスト使用し続けたいと(例を#customText。)その後、以下のようなCSSルールを設定するためにそれを使用します。

#supertextflow > #customText { 
    -fx-fill: red; 
    -fx-font-size : 20px; 
} 

編集: James_DはあなたがCSSルールに(私はそれが正しい用語です推測しています)タイプセレクタを使用する必要があります下に賞賛に述べたようにあなたの中のすべてのテキストノードをスタイルするためには、TextFlow neなし

#supertextflow > Text { 
    -fx-fill: red; 
    -fx-font-size : 20px; 
} 
+1

タイプセレクタ、つまり '#supertextflow> Text {-fx-fill:red;}で動作しません。 } '、ラベルを使用する必要はなく、' Text'インスタンスにスタイルクラスやIDを設定する必要はありません。 –

+0

@James_Dああああ!私は何かを忘れていると思った:P。 '#supertextflow> .text'を使うと動作しませんが、代わりに' #supertextflow> Text'を使うとそのトリックを行います。それを指摘してくれてありがとう。 – JKostikiadis

関連する問題