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();
}
});
}
}