También hemos empezado a programar interfaces gráficas con Swing y manejo de hilos para gestionar recursos compartidos. Aquí dejo un pequeño ejemplo de como manejar las 2 cosas, una interfaz gráfica donde tenemos 5 botones, todos a un mismo escuchador, y al pulsarlos nos muestra por consola su texto:
Semana.java
public class Semana{
public Semana() {};
public void ejecuta() {
JFrame jfMarco = new JFrame("Ejemplo con JButtons");
JButton jbBotonL = new JButton("Lunes");
JButton jbBotonM = new JButton("Martes");
JButton jbBotonW = new JButton("Miercoles");
JButton jbBotonJ = new JButton("Jueves");
JButton jbBotonV = new JButton("Viernes");
jfMarco.getContentPane().setLayout(new FlowLayout());
jfMarco.getContentPane().add(jbBotonL);
jfMarco.getContentPane().add(jbBotonM);
jfMarco.getContentPane().add(jbBotonW);
jfMarco.getContentPane().add(jbBotonJ);
jfMarco.getContentPane().add(jbBotonV);
EscuchadorBoton otro = new EscuchadorBoton();
jbBotonL.addActionListener(otro);
jbBotonM.addActionListener(otro);
jbBotonW.addActionListener(otro);
jbBotonJ.addActionListener(otro);
jbBotonV.addActionListener(otro);
jfMarco.setSize(500, 70);
jfMarco.setVisible(true);
jfMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main (String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Semana().ejecuta();
}
});
}
}
EscuchadorBoton.javapublic class EscuchadorBoton implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(((JButton)e.getSource()).getText());
}
} La ventana resultante:
No hay comentarios:
Publicar un comentario