Originariamente inviato da svarovsci
Ciao a tutti,
premesso che sono alle prime armi nella programmazione java, volevo chiedere aiuto sul mio problema.
Devo fare un amtrice di bottoni nella quale ogni bottone è associato alla stessa immagine .gif e fin qui tutto ok, il problema sorge quando devo modificare l'icona del bottone cliccandoci sopra perchè voglio aggiungere ad ogni click un icona diversa fino ad un massimo di 4 poi dopodichè vorrei ritornare sempre clickkando sul bottone alla prima icona. Comunque in sostanza in base al numero di click dati dall'utente l'immagine è quella associata al numero di click che potrebbe anche essere un numero elevato nonostante le sole 4 icone che voglio aggiungere.
spero di essermi spiegato cmq allego qui sotto il mio codice e spero che qualcuno mi possa aiutare.
Ti conviene estendere JButton e creare una sottoclasse che contiene 1 dato aggiuntivo, cioè l'indice della icona.

codice:
public MyButton extends JButton
{
    private int iconIndex;

    public MyButton (Icon icon)
    {
        super (icon);
        iconIndex = 0;
    }
    
    public void setIconIndex (int iconIndex)
    {
        this.iconIndex = iconIndex;
    }

    public int getIconIndex ()
    {
        return iconIndex;
    }
}
A questo punto è banale: quando ricevi l'evento actionPerformed, vai a prendere il componente sorgente dell'evento, verifichi che sia di tipo MyButton, fai il cast a MyButton e quindi prendi l'indice della icona. In base a questo valore imposti la nuova icona.