Hace poco estaba haciendo una asignación de programación que nos requería implementar en código un programa especificado por un diagrama UML. En un punto, el diagrama especificó que tenía que crear un JButton anónimo que mostrara un recuento (comenzando en uno) y decrementara cada vez que se hacía clic. El JButton y su ActionListener tenían que ser anónimos.clase anónima de Java que implementa ActionListener?
me ocurrió con la siguiente solución:
public static void main(String[] args) {
JFrame f = new JFrame("frame");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400, 400);
f.getContentPane().add(new JButton() {
public int counter;
{
this.counter = 1;
this.setBackground(Color.ORANGE);
this.setText(this.counter + "");
this.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
counter --;
setText(counter + "");
}
});
}
});
f.setVisible(true);
}
Esto añade un JButton en el anonimato, a continuación, añade otro ActionListener anónima (interno) para controlar los eventos y actualizar el texto del botón según sea necesario. ¿Hay una mejor solución? Estoy bastante seguro de que no puedo declarar un JButton implements ActionListener()
anónimo, pero ¿hay alguna otra forma más elegante de lograr el mismo resultado?
Mira dónde estás ahora @Tim – Insane