import java.awt.*;
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Rectangle;public class FrameHello
    extends JFrame {
JPanel jPanelTotal = new JPanel();
    JScrollPane scrollPaneTA = new JScrollPane();
    JTextArea details_3 = new JTextArea();
    JButton jButton1 = new JButton();
    BorderLayout borderLayout2 = new BorderLayout();
BorderLayout borderLayout1 = new BorderLayout();
BorderLayout borderLayout3 = new BorderLayout();
public FrameHello() {
        try {
            jbInit();
        }
        catch (Exception exception) {
            exception.printStackTrace();
        }
    }    private void jbInit() throws Exception {
        getContentPane().setLayout(borderLayout1);
        this.setSize(200, 180);
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension frameSize = this.getSize();
        if (frameSize.height > screenSize.height) {
            frameSize.height = screenSize.height;
        }
        if (frameSize.width > screenSize.width) {
            frameSize.width = screenSize.width;
        }
        this.setLocation( (screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2 - 50);
        jButton1.setText("测试");        details_3 = new JTextArea();
        Font font = new Font("幼圆",Font.CENTER_BASELINE|Font.BOLD,12);
        details_3.setFont(font);
        details_3.setForeground(Color.GREEN);
        String str = "aaa\r\n";
        for(int i = 0 ; i < 10 ; i ++)
            str += "cc\r\n";
        details_3.setText(str);
        jPanelTotal.setLayout(borderLayout3);
        details_3.setLineWrap(true);
        details_3.setBounds(45, 130, 300, 150);
        scrollPaneTA.getViewport().setLayout(borderLayout2);
scrollPaneTA.getViewport().add(details_3, java.awt.BorderLayout.CENTER);
jPanelTotal.add(scrollPaneTA, java.awt.BorderLayout.CENTER);
jPanelTotal.add(jButton1, java.awt.BorderLayout.NORTH);
this.getContentPane().add(jPanelTotal, java.awt.BorderLayout.CENTER);

this.setVisible(true);
    }    public static void main(String[] args) {
        FrameHello framehello = new FrameHello();
    }
}

解决方案 »

  1.   

    大概我没有表达清楚,我的意思是在同一个JTextArea里面实现两行文字不同字体颜色。
    而不是设置JTextArea里全部文字的font和color。
      

  2.   

    对了,我看了你的代码并且运行,看见成功地在JTextArea中加入了JScrollPane,可是很奇怪,
    我试了一下竟然不行,我的JTextArea和你的区别在于没有设置setLineWrap(true),并且添加了一个Border,可你的可以,我的就不行,我之前另外发了一个帖子,
    http://community.csdn.net/Expert/topic/3841/3841528.xml?temp=.6129419
      

  3.   

    自己顶一下,就像做成聊天室的那样,是不是JTextArea不能实现阿
      

  4.   

    JTextArea不行用JTextPaneSimpleAttributeSet sas = new SimpleAttributeSet();
    StyleConstants.setForeground(sas,Color.blue);
    document.setCharacterAttributes(offset,length,sas,false);
      

  5.   

    但是一个JTextPane也只能设置成一种字体风格,我要上一行和下一行不一样,而且都要显示在同一个容器(或者看起来是在一个容器内),怎么办?
      

  6.   


    document.setCharacterAttributes(offset,length,sas,false);offset --起始位置
    length --长度
    如:
    document.setCharacterAttributes(第一行起始位置,行的长度,sas,false);document.setCharacterAttributes(第二行起始位置,行的长度,sas,false);