In my
previous post, I explained how to wrap the text. But there are some situations,
where the space for rendering the text is smaller than the space needed to
render the entire string. In these scenarios, you can use 'setTextOverrun' and
specify how to process the remaining string that cannot be rendered properly.
TestFX.java
Signature of setTextOverrun method
public
final void setTextOverrun(OverrunStyle value)
'OverrunStyle'
is an enum provides below constnats to define the wrapping behavior.
Constant
|
Description
|
CLIP
|
Any text
which exceeds the bounds of the label will be clipped.
|
ELLIPSIS
|
If the text
of the label exceeds the bounds of the label, then the last three characters
which can be displayed will be "...".
|
WORD_ELLIPSIS
|
Same as
ELLIPSIS, but first removes any partial words at the label boundary and then
applies the ellipsis.
|
CENTER_ELLIPSIS
|
Trims
out the center of the string being displayed and replaces the middle three
characters with "...". The first and last characters of the string
are always displayed in the label, unless the label becomes so short that it
cannot display anything other than the ellipsis.
|
CENTER_WORD_ELLIPSIS
|
Same as
CENTER_ELLIPSIS but ensures that the "..." occurs between full
words. If the label becomes so short that it is not possible to trim any
additional words, then partial words are displayed and this behaves the same
as CENTER_ELLIPSIS.
|
LEADING_ELLIPSIS
|
Same as
ELLIPSIS but puts the "..." at the beginning of the text instead of
at the end.
|
LEADING_WORD_ELLIPSIS
|
Same as
WORD_ELLIPSIS but puts the "..." at the beginning of the text
instead of at the end.
|
Ex
Label
label1 = new Label("You can learn java programming at
'https://self-learning-java-tutorial.blogspot.com'");
label1.setWrapText(true);
label1.setFont(new
Font("Arial", 30));
label1.setTextAlignment(TextAlignment.RIGHT);
label1.setTextOverrun(OverrunStyle.ELLIPSIS);
LabelApp.java
package com.sample.demos; import static javafx.geometry.Pos.CENTER; import java.io.FileNotFoundException; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.OverrunStyle; import javafx.scene.layout.VBox; import javafx.scene.text.Font; import javafx.scene.text.TextAlignment; import javafx.stage.Stage; public class LabelApp extends Application { @Override public void start(Stage primaryStage) throws FileNotFoundException { Label label1 = new Label("You can learn java programming at 'https://self-learning-java-tutorial.blogspot.com'"); label1.setWrapText(true); label1.setFont(new Font("Arial", 30)); label1.setTextAlignment(TextAlignment.RIGHT); label1.setTextOverrun(OverrunStyle.ELLIPSIS); VBox vBox = new VBox(10, label1); vBox.setAlignment(CENTER); Scene scene = new Scene(vBox, 200, 250); /* Set the scene to primaryStage, and call the show method */ primaryStage.setTitle("JavaFX Label Example"); primaryStage.setScene(scene); primaryStage.show(); } }
TestFX.java
package com.sample.demos; import static javafx.geometry.Pos.CENTER; import java.io.FileNotFoundException; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.OverrunStyle; import javafx.scene.layout.VBox; import javafx.scene.text.Font; import javafx.scene.text.TextAlignment; import javafx.stage.Stage; public class LabelApp extends Application { @Override public void start(Stage primaryStage) throws FileNotFoundException { Label label1 = new Label("You can learn java programming at 'https://self-learning-java-tutorial.blogspot.com'"); label1.setWrapText(true); label1.setFont(new Font("Arial", 30)); label1.setTextAlignment(TextAlignment.RIGHT); label1.setTextOverrun(OverrunStyle.ELLIPSIS); VBox vBox = new VBox(10, label1); vBox.setAlignment(CENTER); Scene scene = new Scene(vBox, 200, 250); /* Set the scene to primaryStage, and call the show method */ primaryStage.setTitle("JavaFX Label Example"); primaryStage.setScene(scene); primaryStage.show(); } }
No comments:
Post a Comment