2010-07-09 169 views
27

有没有一种方法可以像使用JTextField一样为JTextArea创建水平居中的文本?在JTextArea或JTextPane中居中文本 - 水平文本对齐

setHorizontalAlignment(JTextField.CENTER); 

有没有一种方法可以用多行文本区域完成同样的事情?我找不到使用JTextArea的方法,那么还有其他选择吗?的JTextPane?如果是这样,怎么样?

回答

55

您需要使用JTextPane并使用属性。以下应居中的所有文本:

StyledDocument doc = textPane.getStyledDocument(); 
SimpleAttributeSet center = new SimpleAttributeSet(); 
StyleConstants.setAlignment(center, StyleConstants.ALIGN_CENTER); 
doc.setParagraphAttributes(0, doc.getLength(), center, false); 

编辑:

垂直居中没有,据我知道的支持。以下是一些您可能会觉得有用的代码:Vertical Alignment of JTextPane

+1

如果我想让它也垂直居中,那么该怎么办? – Awaken 2010-07-09 17:47:57

+0

@Aaken,请参阅上面的编辑: – camickr 2010-07-09 18:12:27

+0

yup ...它的工作原理! :D – gumuruh 2012-01-20 03:15:33