ecco l'esempio di cui ti parlavo, il testo e' sempre in fondo ... ( anche se mi sa che non ti sto affatto aiutando... )


codice:
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;

public class Client {

	private TextArea ta_txt;
	private TextField tf_txt;
	private Button send_btn, quit_btn;
	private Frame mainFrame;
	
	private Socket myConnection = null;
	private BufferedReader bufferReader = null;
	private PrintStream mySender = null;
	private Thread t = null;
	
	public Client() {
	
		ta_txt = new TextArea("", 10, 50, TextArea.SCROLLBARS_VERTICAL_ONLY);
		tf_txt = new TextField(50);
		
		send_btn = new Button("Send");
		
		quit_btn = new Button("Quit");
	}
	
	public void launchFrame() {
	
		send_btn.addActionListener(new MyButtonListener());
		quit_btn.addActionListener(new MyButtonListener());
		tf_txt.addKeyListener(new MyKeyListener());
		
		mainFrame = new Frame("ChatClient V0.1");
		mainFrame.add(ta_txt, BorderLayout.CENTER);
		mainFrame.add(tf_txt, BorderLayout.SOUTH);
		mainFrame.addWindowListener(new MyWindowListener());
		
		Panel north_pan = new Panel(new BorderLayout());
		north_pan.add(send_btn, BorderLayout.NORTH);
		north_pan.add(quit_btn, BorderLayout.SOUTH);
		
		Panel buttons_pan = new Panel(new BorderLayout());
		buttons_pan.add(north_pan, BorderLayout.NORTH);
		
		mainFrame.add(buttons_pan, BorderLayout.EAST);
		mainFrame.pack();
		mainFrame.setVisible(true);

	}
	
	private void write() {
	        ta_txt.append( "[a user]  " + tf_txt.getText() + "\n" );
		tf_txt.setText("");
		tf_txt.requestFocus();
	}


	private void closeAppication() {
		mainFrame.dispose();
	}
	
	class MyButtonListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			
			if(e.getActionCommand().equals("Send")) {
				write();
			}
			else if(e.getActionCommand().equals("Quit")) {
				closeAppication();
			}
		}
	}
	
	class MyWindowListener extends WindowAdapter {
		
		public void windowClosing(WindowEvent e) {
			closeAppication();
		}
	}
	
	class MyKeyListener extends KeyAdapter {
		
		public void keyReleased(KeyEvent e) {
			if(e.getKeyCode()==10) {
				write();
			}		
		}
	}

	
	public static void main(String[] args) {
		Client testChat = new Client();
		testChat.launchFrame();
	}
}