转载自:http://www.blogjava.net/cerulean/archive/2010/03/10/314976.html
引子只是个小问题,JTextArea多行文本,想设置文字的对齐方式为居中对齐,却发现死活没有合适有效的方法,又试了JTextField和JLabel,都不理想。搜了一溜够看到JTextPane的解决方法,其实真是有点儿大材小用了。JTextPane里可以设置style,对齐方式、字体字号、颜色等等,并且还可以设置style的作用范围,挺方便的。另外,想把文字区域背景设为透明的也是在API中找了一通,才发现敢情就是setOpacity,呃,对这个单词实在是太不敏感了。。。。?
把在coderanch上搜的例子贴在这里吧,以防以后忘了:
?
import?java.awt.*;??
import?javax.swing.*;??
import?javax.swing.text.*;??
???
public?class?Styling??
{??
????public?Styling()??
????{??
????????String?text?=?"To?refer?to?locations?within?the?sequence,?the?"?+??
??????????????????????"coordinates?used?are?the?location?between?two?"?+??
??????????????????????"characters.\nAs?the?diagram?below?shows,?a?location?"?+??
??????????????????????"in?a?text?document?can?be?referred?to?as?a?position,?"?+??
??????????????????????"or?an?offset.?This?position?is?zero-based.";??
???
????????SimpleAttributeSet?aSet?=?new?SimpleAttributeSet();???
????????StyleConstants.setForeground(aSet,?Color.blue);??
????????StyleConstants.setBackground(aSet,?Color.orange);??
????????StyleConstants.setFontFamily(aSet,?"lucida?bright?italic");??
????????StyleConstants.setFontSize(aSet,?18);??
???
????????SimpleAttributeSet?bSet?=?new?SimpleAttributeSet();??
????????StyleConstants.setAlignment(bSet,?StyleConstants.ALIGN_CENTER);??
????????StyleConstants.setUnderline(bSet,?true);??
????????StyleConstants.setFontFamily(bSet,?"lucida?typewriter?bold");??
????????StyleConstants.setFontSize(bSet,?24);??
???
????????JTextPane?textPane?=?new?JTextPane();??
????????textPane.setText(text);??
????????StyledDocument?doc?=?textPane.getStyledDocument();??
????????doc.setCharacterAttributes(105,?doc.getLength()-105,?aSet,?false);??
????????doc.setParagraphAttributes(0,?104,?bSet,?false);??
???
????????JFrame?f?=?new?JFrame();??
????????f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);??
????????f.add(new?JScrollPane(textPane));??
????????f.setSize(400,400);??
????????f.setLocation(200,200);??
????????f.setVisible(true);??
????}??
???
????public?static?void?main(String[]?args)??
????{??
????????new?Styling();??
????}??
}??