Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/05/2009, 06:22
Avatar de rameau1982
rameau1982
 
Fecha de Ingreso: febrero-2007
Ubicación: Barcelona
Mensajes: 111
Antigüedad: 17 años, 10 meses
Puntos: 0
ayuda con JFrame que no hace nada

Hola!

Escribo porque estoy haciendo una aplicación java de ejemplo en Swing y no me funciona.
Se basa en una clase que extiende de JFrame e implementa actionListener. En su constructor se crea un JPanel con un JTextField y un JButton, y un JScrollPane con un JTextArea dentro. Cuando se escribe en el JTextField y se da al JButton el método actionPerformed() recoge el texto del JTextField y hace un append() al JTextArea.

Tan simple como esto....
Pues no hay manera porque, directamente, no me deja escribir en el JTextField!!

Miraros el código, por favor, y decidme en que falla.
Muchas gracias.

Código:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Frame1 extends JFrame implements ActionListener{

	protected JTextField textf;
	protected JTextArea textarea;
	static Frame1 f;
	
	public Frame1(){
		setSize(600,600);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		JPanel panel1 = new JPanel();
		panel1.setLayout(new BorderLayout());
		JButton button1 = new JButton("Accion");
		button1.addActionListener(this);
		panel1.add(button1,BorderLayout.EAST);
		textf = new JTextField(100);
		textf.addActionListener(this);

		panel1.add(textf,BorderLayout.CENTER);

		textarea = new JTextArea(20,100);
		textarea.setEditable(false);
		JScrollPane scrollpane = new JScrollPane(textarea,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		add(scrollpane,BorderLayout.CENTER);
		add(panel1,BorderLayout.SOUTH);
		setVisible(true);
		setTitle("Chat Sala Única");
		setResizable(false);
	}
	
	public void actionPerformed(ActionEvent evt) {
		String text;
		text = textf.getText();
		textf.setText("");
		textarea.append(text +"\n");
	}
	
	public static void main(String [] args){

		SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                f = new Frame1();
            }
        });
	}
}