2012-10-02 3 views
14

Swing에서 HTML을 사용하여 JLabel을 쉽게 스타일링 할 수있었습니다. 원하는 텍스트를 레이블 텍스트로 사용하여 적절하게 렌더링되었습니다.JavaFX HTML 스타일링 (또는 이와 동등한) 레이블

JavaFX에서는 사용할 수 없지만 setStyle() 메서드를 사용하여 특정 레이블 (또는 일반적으로 노드)의 스타일을 설정할 수 있습니다. 위의 같은 것을 달성 할 수있는 가장 쉬운 방법이 될 것입니다 무엇

JLabel label = new JLabel("<html>Part of this <b>text is b</b>old and part isn't.</html>"); 

:

그러나,이 방법을 사용하여이 예를 들어, 어떤 스타일로 라벨의의 해당하는 부분을 설정하는 방법을 분명 아니다 ?

+0

dublicates처럼 다른 스타일 텍스트 노드를 결합 TextFlow를 사용해보십시오 ([확인 자바 FX의 라벨 또는 텍스트에 굵은 텍스트의 부분] http://stackoverflow.com/q/12341672/682495) 및 [JavaFX TextArea의 강조 표시 문자열] (http://stackoverflow.com/q/12346009/682495) –

답변

7

할 수 있습니다

아마도
TextFlow textFlow = new TextFlow(); 

Text first=new Text("Part of this "); 
first.setStyle("-fx-font-weight: regular"); 

Text second=new Text("text is b"); 
second.setStyle("-fx-font-weight: bold"); 

Text third=new Text("old and part isn't."); 
third.setStyle("-fx-font-weight: regular"); 

textFlow.getChildren().addAll(first, second, third); 
+0

예, JavaFX 내부 모델에 더 잘 어울릴 수 있지만 콘텐츠 제공 업체에게는 끔찍한 사실입니다. 난 단지 구성 파일에있는 리치 텍스트 컨텐트를 다루는 개발자를 제공하고, Java에서 그 컨텐트를 활용하도록하고 싶다. –

+0

Jason, "JavaFX Markdown"으로 검색해보십시오. 해결책을 개발하는 데 도움이되거나 도움이되지 않을 수도 있습니다. – jewelsea

관련 문제