7

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!

Braj
  • 46,415
  • 5
  • 60
  • 76
Ood
  • 1,445
  • 4
  • 23
  • 43

2 Answers2

11

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

Community
  • 1
  • 1
Braj
  • 46,415
  • 5
  • 60
  • 76
1

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

waroa kawa
  • 29
  • 8