Java - 将JTextArea与右对齐

时间:2014-06-19 20:32:29

标签: java swing alignment jtextarea

我可以将JTextArea中的文本对齐到右边(或者更改一般的文本对齐方式)吗?

|Left         |
|  Centered   |
|        Right|    <- Like this

我一直在搜索几个小时,似乎其他人之前已经问过这个问题,但没有好的答案(实际上有效)。

提前致谢!

2 个答案:

答案 0 :(得分:7)

尝试使用JEditorPaneJTextPane代替JTextArea

请查看我的另一篇文章JEditorPane vertical aligment以获取完整的示例代码。

有关详细信息,请查看此帖子Vertical Alignment of Text in JEditorPane

示例代码:

JTextPane output = new JTextPane();

SimpleAttributeSet attribs = new SimpleAttributeSet();
StyleConstants.setAlignment(attribs, StyleConstants.ALIGN_RIGHT);
output.setParagraphAttributes(attribs, true);

修改

你可以尝试

JTextArea jTextArea = new JTextArea();
jTextArea.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);

详细了解How to set the orientation of JTextArea from right to left

答案 1 :(得分:1)

您必须使用 JTextPane ,在这种情况下,它优于 JTextArea

尝试此代码:

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

修改此代码,如果要输入文本:

+在中:

StyleConstants.setAlignment(align, StyleConstants.ALIGN_RIGHT);

+在中心中:

StyleConstants.setAlignment(align, StyleConstants.ALIGN_CENTER);

+在中:

StyleConstants.setAlignment(align, StyleConstants.ALIGN_LEFT);

看看这个Centering Text in a JTextArea or JTextPane - Horizontal Text Alignment