PDA

View Full Version : [JAVA] Action con 2 icone. Come scegliere?


lovaz
23-03-2007, 09:27
Altro problemino, ho una Action per l'apertura di un file,
usata da un pulsante nella toolbar e da una voce di menu.

Quello che vorrei fare e' impostare un'icona piccola nel menu,
e una un po' piu' grande nella toolbar, come fare?

Ho pensato all'override di getValue, ma come distinguere i due casi?

Grazie.

lovaz
20-04-2007, 19:05
Ho risolto così:

Costruttore privato che prende l'icona + membri statici:
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:
public static OpenFile getAction( boolean bigIcon )
{
if( bigIcon )
return bigAction;

return smallAction;
}
e (dis)abilitata/e tramite:
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:
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