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