2017-11-29 2 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!")); 

나는 다른 솔루션을 tryed하지만 그들 중 누구도 내가 그 텍스트가 다른 구성 요소 알지만, 그것은 그 부모로부터 왜 내가 그것을 스타일 수 없습니다

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

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

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

작동하지?

답변

1

Text으로 할 수 없다. JavaFX CSS Reference Guide을 보면 스타일 클래스에 채우기 CSS 규칙이 없습니다. 그래서 나는 Text을 남겨두고 대신 Label을 사용할 것을 제안합니다. 그런 다음 아래의 CSS 규칙 사용할 수 있습니다 할 경우 경우

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

당신이 텍스트를 사용하여 유지하려는 당신은 (. #customText 전을)를 FlowPane 내부에 특정 ID를 각 요소 (텍스트)을 설정해야 할 것이다 다음 CSS 규칙을 아래와 같이 설정을 사용

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

편집 : 당신의 CSS 규칙에 유형 선택기을 (내가 그 올바른 용어입니다 추측하고있다)를 사용한다 아래 James_D는 추천 해에 언급 한 바와 같이 귀하의 안에있는 모든 텍스트 노드를 스타일링하려면 TextFlow ne없이 임의의 ID를 설정하도록 수정했습니다.

#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

관련 문제