private JButton jBtnDrawCircle = new JButton("Circle");
private JButton jBtnDrawSquare = new JButton("Square");
private JButton jBtnDrawTriangle = new JButton("Triangle");
private JButton jBtnSelection = new JButton("Selection");
¿Cómo añado escuchadores de acción a estos botones, de forma que desde un método principal pueda llamar a actionperformed
sobre ellos, de forma que cuando se pulse pueda llamarlos en mi programa?
De dos maneras:
Implementa ActionListener en tu clase, luego usa jBtnSelection.addActionListener(this);
Más tarde, tendrás que definir un método, public void actionPerformed(ActionEvent e)
. Sin embargo, hacer esto para múltiples botones puede ser confuso, porque el método actionPerformed
tendrá que comprobar la fuente de cada evento (e.getSource()
) para ver de qué botón proviene.
2. Usar clases internas anónimas:
jBtnSelection.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
selectionButtonPressed();
}
} );
Más adelante, tendrás que definir selectionButtonPressed()
.
Esto funciona mejor cuando tienes múltiples botones, porque tus llamadas a métodos individuales para manejar las acciones están justo al lado de la definición del botón.
El segundo método también te permite llamar directamente al método de selección. En este caso, podrías llamar a selectionButtonPressed()
si ocurre alguna otra acción, también - como, cuando un temporizador se activa o algo así (pero en este caso, tu método se llamaría de otra manera, tal vez selectionChanged()
).
Lo mejor es que revises los tutoriales de Java Swing, en concreto el tutorial sobre botones.
El fragmento de código corto es:
jBtnDrawCircle.addActionListener( /*class that implements ActionListener*/ );