Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make portion of a text bold in a JavaFx Label or Text

In my JavaFx application I need to have a word or two rendered in boldface in the whole sentence. Currently the sentence is rendered as a JavaFx Label but upgrading component also would not allow me set the text as so that I can have the words "Sample" displayed in bold.

String s = "This is a <b>Sample</b> sentence" Label label = new Label(s); 

output

This is a Sample sentence

JavaFx Text also does not allow this. Is there any component where I can have a portion of the text in boldface?

I am not sure if JavaFx WebView is a good idea for rendering many small sentences in a window.

like image 655
Neil Avatar asked Sep 09 '12 18:09

Neil


People also ask

How do I bold text in a JavaFX Label?

To make the text look bold, use the FontWeight constant of the font method as shown in Example 8. t. setFont(Font. font("Verdana", FontWeight.

How do I make part of a string bold in Java?

16 + names. length() is where to stop bolding. So I said start bolding after "You have chosen " and stop bolding the length of the name positions after where it started. b is the type of span to apply on the StringBuilder (which is bold).

How do I make a form bold in labels?

To bold the text in HTML, use either the strong tag or the b (bold) tag. Browsers will bold the text inside both of these tags the same, but the strong tag indicates that the text is of particular importance or urgency. You can also bold text with the CSS font-weight property set to “bold.”

How do I change the text in a JavaFX Label?

Set Label Font You can change the font used by a JavaFX Label by calling its setFont() method. This is useful if you need to change the size of the text, or want to use a different text style.


1 Answers

It is possible to use TextFlow container from JavaFX8. Then you can easily add differently styled Text nodes inside it.

TextFlow flow = new TextFlow();  Text text1=new Text("Some Text"); text1.setStyle("-fx-font-weight: bold");  Text text2=new Text("Some Text"); text2.setStyle("-fx-font-weight: regular");  flow.getChildren().addAll(text1, text2); 

TextFlow container will automatically wrap content Text nodes.

enter image description here

like image 183
Ernisto Avatar answered Sep 30 '22 21:09

Ernisto