Ho risolto così:
Costruttore privato che prende l'icona + membri statici:
Codice:
private static final OpenFile bigAction = new OpenFile( big ),
smallAction = new OpenFile( small );
big e small sono due icone, 24x24 e 16x16.
L'azione viene ricavata tramite:
Codice:
public static OpenFile getAction( boolean bigIcon )
{
if( bigIcon )
return bigAction;
return smallAction;
}
e (dis)abilitata/e tramite:
Codice:
public static void enable()
{
bigAction.setEnabled( true );
smallAction.setEnabled( true );
}
public static void disable()
{
bigAction.setEnabled( false );
smallAction.setEnabled( false );
}
quindi si aggiunge a un menu e a una toolbar rispettivamente con:
Codice:
file.add( OpenFile.getAction(false) );
tbar.add( OpenFile.getAction(true) );
Fin qui tutto bene, ma devo fare un bel po' di azioni così.
Ho già tentato di creare una superclasse per riusare un po' di codice,
senza successo - il problema sono i membri statici.
Qualcuno ha un'idea?
Grazie