Jtextarea如何设置不同字体、颜色
JTextArea本身不具备这样的功能,它是纯文本组件,你可以使用JTextPane,通过操作Document文档来控制JTextPane显示的内容,下面的代码在一个JTextPane中显示了一个图标,三行文字,每行用不同的颜色和大小显示:
import javax。 swing。*;
import java。awt。*;
import java。awt。event。*;
import javax。swing。text。 *;
import java。io。*;
public class Test {
JFrame frame;
JTextPane ...全部
JTextArea本身不具备这样的功能,它是纯文本组件,你可以使用JTextPane,通过操作Document文档来控制JTextPane显示的内容,下面的代码在一个JTextPane中显示了一个图标,三行文字,每行用不同的颜色和大小显示:
import javax。
swing。*;
import java。awt。*;
import java。awt。event。*;
import javax。swing。text。
*;
import java。io。*;
public class Test {
JFrame frame;
JTextPane textPane;
File file;
Icon image;
public Test(){
frame = new JFrame("JTextPane");
textPane = new JTextPane();
file = new File("。
/classes/test/icon。gif");
image = new ImageIcon(file。getAbsoluteFile()。toString());
}
public void insert(String str, AttributeSet attrSet) {
Document doc = textPane。
getDocument();
str ="\n" + str ;
try {
doc。
insertString(doc。getLength(), str, attrSet);
}
catch (BadLocationException e) {
System。
out。println("BadLocationException: " + e);
}
}
public void setDocs(String str,Color col,boolean bold,int fontSize) {
SimpleAttributeSet attrSet = new SimpleAttributeSet();
StyleConstants。
setForeground(attrSet, col);
//颜色
if(bold==true){
StyleConstants。
setBold(attrSet, true);
}//字体类型
StyleConstants。setFontSize(attrSet, fontSize);
//字体大小
insert(str, attrSet);
}
public void gui() {
textPane。
insertIcon(image);
setDocs("第一行的文字",Color。red,false,20);
setDocs("第二行的文字",Color。
BLACK,true,25);
setDocs("第三行的文字",Color。BLUE,false,20);
frame。getContentPane()。
add(textPane, BorderLayout。CENTER);
frame。addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System。
exit(0);
}});
frame。setSize(200,300);
frame。setVisible(true);
}
public static void main(String[] args) {
Test test = new Test();
test。
gui();
}
}。收起