怎样在JTextArea控件中,对不同行的字体设置不同的颜色? 不可以吧?JTextArea只支持纯文本。可以用JEditorPane实现你的要求。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能讲一下JEditorPane的功能么?我看了一下帮助,他似乎不满足我程序的要求,我的程序要求能在控件中,不停的动态加入文本信息,JEditorPane我没用过,它能实现这个功能吗?我还是希望有高手指点用JTextArea实现我要求的功能!!! JTextArea本身不具备这样的功能,它是纯文本组件,你可以使用JTextPane,通过操作Document文档来控制JTextPane显示的内容,楼上那位兄弟说的JEditorPane是JTextPane的父类,我平时常用它来显示简单的网页,当然,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(); }}<------ 树欲静而风不止 ------> 求窗体答案 JScrollPanel报错java.lang.IllegalArgumentException JAVA 编程问题` 也许改变我程序员命运的一道面试题 请教!!!如何弹出一个固定显示模式的消息框呢??? jdbc连接数据库,没显示任何信息,求助啊 如何用JAVA实现定时关机,小弟先谢谢了 有不懂的问题,请问…… sun公司的黑洞???? 又是一个老问题。。。。。 how to compile java package???? 请问在JBuilder9中部署ejb时怎么修改weblogic-ejb-jar.xml文件?
我还是希望有高手指点用JTextArea实现我要求的功能!!!
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();
}
}
<------ 树欲静而风不止 ------>