2012-10-02 34 views
14

En Swing, era trivialmente fácil de diseñar una etiqueta J utilizando HTML; simplemente utilizaba el HTML que deseaba como texto para la etiqueta, y se representaba de forma adecuada.JavaFX etiquetas de estilo HTML (o equivalentes)

En JavaFX esto no está disponible, pero podemos establecer el estilo de una determinada etiqueta (o nodo en general) utilizando el método setStyle().

Sin embargo, el uso de este enfoque no es obvio cómo configurar parte de una etiqueta para un cierto estilo, por ejemplo, el equivalente a:

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

¿Cuál sería la forma más fácil de lograr algo como el anterior ?

+0

Posiblemente dublicates [Hacer parte de un texto en negrita en una etiqueta de texto o JavaFX] (http://stackoverflow.com/q/12341672/682495) y [Resaltar cadenas en JavaFX TextArea] (http://stackoverflow.com/q/12346009/682495) –

Respuesta

7

puede probar a usar TextFlow combinar diferentes nodos de texto con estilo como

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

Sí, lo encontré, puede que se ajuste mejor al modelo interno de JavaFX, pero es horrible para los proveedores de contenido. Solo quiero proporcionarle al desarrollador que estoy trabajando con contenido de texto enriquecido en un archivo de configuración, y hacer que utilice ese contenido en Java. –

+0

Jason, prueba googlear "JavaFX Markdown", que puede o no ayudarte a desarrollar una solución. – jewelsea