2012-10-02 6 views
14

W Swingu łatwe było stylowanie JLabel za pomocą HTML - po prostu użyłeś kodu HTML, który chciałeś jako tekst dla etykiety, i został on prawidłowo renderowany.Etykiety JavaFX HTML (lub odpowiednik)

W języku JavaFX jest to niedostępne, ale możemy ustawić styl konkretnej etykiety (lub ogólnie węzła) przy użyciu metody setStyle().

Jednak zastosowanie tej metody nie jest to oczywiste, jak ustawić część etykiety być pewien styl, na przykład równowartość:

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

co byłoby najprostszym sposobem, aby osiągnąć coś jak wyżej ?

+0

Ewentualnie dublicates [rodzaj część tekstu pogrubienie w etykiecie JavaFX lub tekst] (http://stackoverflow.com/q/12341672/682495) i [Podświetlanie ciągów w JavaFX TextArea] (http://stackoverflow.com/q/12346009/682495) –

Odpowiedz

7

Można spróbować użyć TextFlow łączyć różne tytułowana węzły tekstowe jak

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

Tak, znalazłem, że może pasować do modelu wewnętrznego JavaFX lepiej, ale jest okropne dla dostawców treści. Chcę tylko udostępnić programistę, który pracuje z jakąś treścią tekstową w pliku konfiguracyjnym, i pozwolić mu na wykorzystanie tej treści w Javie. –

+0

Jason, spróbuj google "Marker JavaFX", który może lub nie może pomóc w opracowaniu rozwiązania. – jewelsea