JDayChooser

Tengo un problema y no me doy cuenta de como solucionarlo.
Me he bajado un componente de Internet llamado JDayChooser que me permite seleccionar un día
del mes. El componente no es más que un panel con 31 botones. Ese componente lo he metido en
un JDialog. Lo que quiero es que el dialogo se cierre cuando pulse uno de los 31 botones.
La solución sería añadir un ActionListener al componente, pero este componente no te deja
añadir ese Listener. He mirado en la documentación del componente y tiene un método:
ActionPerformed
public void actionPerformed(ActionEvent e)
JDayChooser is the ActionListener for all day buttons.
Parameters:e - Description of the Parameter
Es decir, que el propio componente es el Listener de todos los botones. Ahora mi duda es como
usar este método para cerrar mi dialogo. ¿Qué tengo que sobrescribirlo?
Respuesta
1
En este caso lo mejor es reescribir el método.
Para ello debes construir una clase que herede de JDayChooser y que reescriba el método actionPerformed.
Lo que debes hacer es poner un if en el método de manera que si se ha pulsado el botón que cierra el diálogo se cierre este y si no se haga la acción por defecto, algo como
actionPerformed(ActionEvent e)
{
if(boton)
dialogo.dispose()
else
super(e)
}
El objeto ActionEvent que se pasa como parámetro tiene la información necesaria para determinar cual es el botón que se ha pulsado.

2 respuestas más de otros expertos

Respuesta
1
No soy experto en interfaz gráfico (me dedico a la parte servidora de las aplicaciones), pero tal como lo describes, si parece que lo que el que lo diseñó pretende es que heredes de su clase e implementes el método actionPerformed. Me parece un diseño un poco extraño, pero ...
Respuesta
1
Si, yo también creo que lo optimo en este caso seria extender esta clase y sobreescribir ese método

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas