Reputation: 1805
I it possible to align the text inside a JTextArea to the right (or change the text alignment in general)?
|Left |
| Centered |
| Right| <- Like this
I've been searching for hours and it seems others have asked this question before but there are no good answers (that actually work).
Thanks in advance!
Upvotes: 7
Views: 25454
Reputation: 29
You have to use JTextPane, It's better than JTextArea on this case:
try this code:
JTextPane textPane=new JTextPane();
StyledDocument style = textPane.getStyledDocument();
SimpleAttributeSet align= new SimpleAttributeSet();
StyleConstants.setAlignment(align, StyleConstants.ALIGN_RIGHT);
style.setParagraphAttributes(0, style.getLength(), align, false);
modify this code If You want to make the text:
+in the Right :
StyleConstants.setAlignment(align, StyleConstants.ALIGN_RIGHT);
+in the Center :
StyleConstants.setAlignment(align, StyleConstants.ALIGN_CENTER);
+in the Left :
StyleConstants.setAlignment(align, StyleConstants.ALIGN_LEFT);
Take a look at this Centering Text in a JTextArea or JTextPane - Horizontal Text Alignment
Upvotes: 1
Reputation: 46881
Try with JEditorPane
or JTextPane
instead of JTextArea
.
Please have a look at my another post JEditorPane vertical aligment for complete sample code.
For more info have a look at this thread Vertical Alignment of Text in JEditorPane
Sample code:
JTextPane output = new JTextPane();
SimpleAttributeSet attribs = new SimpleAttributeSet();
StyleConstants.setAlignment(attribs, StyleConstants.ALIGN_RIGHT);
output.setParagraphAttributes(attribs, true);
You can try
JTextArea jTextArea = new JTextArea();
jTextArea.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
Read more about How to set the orientation of JTextArea from right to left
Upvotes: 12