2012-10-02 6 views
14

In Swing war es einfach, ein JLabel mit HTML zu stylen - Sie verwendeten einfach den gewünschten HTML-Code als Text für das Label und es wurde entsprechend gerendert.JavaFX HTML-Stile (oder äquivalente) Labels

In JavaFX ist dies nicht verfügbar, aber wir können den Stil eines bestimmten Labels (oder Knotens im Allgemeinen) mit der setStyle()-Methode festlegen.

jedoch mit diesem Ansatz ist es nicht klar, wie ein Teil eines Etiketts einzustellen das Äquivalent von einem bestimmten Stil, zum Beispiel zu sein:

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

Was ist der einfachste Weg wäre ungefähr so ​​wie oben zu erreichen ?

+0

Möglicherweise dublicates [Make Teil eines Textes fett in einem JavaFx Etikett oder Text] kombinieren (http://stackoverflow.com/q/12341672/682495) und [Zeichenfolgen in JavaFX TextArea hervorheben] (http://stackoverflow.com/q/12346009/682495) –

Antwort

7

Sie können versuchen, mit Textflow zu verschiedenen gestylten Textknoten wie

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

yeah, ich fand, dass es das interne JavaFX-Modell besser passt, aber es ist schrecklich für Inhaltsanbieter. Ich möchte nur den Entwickler, mit dem ich arbeite, mit einem Rich-Text-Inhalt in einer Konfigurationsdatei versorgen und ihn dazu bringen, diesen Inhalt in Java zu verwenden. –

+0

Jason, versuchen Sie "JavaFX Markdown" zu googlen, das Ihnen bei der Entwicklung einer Lösung helfen kann oder auch nicht. – jewelsea