Ood
Ood

Reputation: 1805

Java - Align JTextArea to the Right

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

Answers (2)

waroa kawa
waroa kawa

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

Braj
Braj

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);

EDIT

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

Related Questions