不可以吧?JTextArea只支持纯文本。可以用JEditorPane实现你的要求。

解决方案 »

  1.   

    能讲一下JEditorPane的功能么?我看了一下帮助,他似乎不满足我程序的要求,我的程序要求能在控件中,不停的动态加入文本信息,JEditorPane我没用过,它能实现这个功能吗?
    我还是希望有高手指点用JTextArea实现我要求的功能!!!
      

  2.   

    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();
      }
    }
    <------ 树欲静而风不止 ------>