//c.javaimport java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;class MainWindows extends JFrame implements ActionListener
{
    public JTextArea JTextArea1=new JTextArea("welcome");
    public JTextField JTextField1=new JTextField("请输入要发送内容");
    public JButton button1=new JButton("发送");        
    public void Windows()
    {
        Container con=getContentPane();
        con.setLayout(new FlowLayout()); 
        con.add(JTextArea1);
        con.add(JTextField1);
        con.add(button1); 
        button1.addActionListener(this);  
        JTextField1.setPreferredSize(new Dimension(395, 30));
        JTextArea1.setPreferredSize(new Dimension(390, 280));
     
        setSize(410,420);
        setVisible(true);
        setResizable(false);
        setDefaultCloseOperation(3);  
    }
    public void actionPerformed(ActionEvent actionevent)
    { 
        if(actionevent.getActionCommand().equals("发送"))
        { 
            String s=JTextField1.getText().trim();
            JTextField1.setText("");
              JTextArea1.append("  "+s+"\n");
            if (s.length()==0)
                JTextArea1.setText("信息不能为空");
            }
       }
}
public class c 
{
  public static void main(String []args)
  { 
      MainWindows n=new MainWindows();
      n.Windows();
      System.gc();  
  }    
}本程序是从JTextField读取字符,按"发送"打印到JTextArea区域中,
现在的问题是;  JTextArea中满的时候不能显示下面的内容,怎么实现JTextArea的自动滚动?有知道的吗?

解决方案 »

  1.   

    ---------------------------------
     jTextArea.append("  "+s+"\n");
    jTextArea.setCaretPosition(jTextArea.getText().length();//滾動到底端
      

  2.   

    把JTextArea加入到JScrollPane中,
    看里面的例子:http://www.java2s.com/Code/Java/Swing-JFC/Scrollpane.htm
      

  3.   

    JScrollPane jScrollPane = new JScrollPane(jTextArea);
    con.add(jScrollPane );//con.add(JTextArea1);
    ---------------------------------
     jTextArea.append("  "+s+"\n");
    jTextArea.setCaretPosition(jTextArea.getText().length();//滾動到底端