Come è possibile disattivare tutte le immagini per un menu JFace ma lasciarli abilitati nella barra degli strumenti

StackOverflow https://stackoverflow.com/questions/734841

  •  09-09-2019
  •  | 
  •  

Domanda

Se creo una serie di azioni da utilizzare in un'applicazione JFace e assegno immagini a quelle azioni, quelle immagini appaiono sia nella barra degli strumenti (dove voglio) e nei menu (in cui non voglio loro).

Oltre a fornire due insiemi completamente separati di azioni (che elimina parte del punto di azioni in primo luogo), come posso organizzare per avere quelle immagini visualizzato solo nella barra degli strumenti, e hanno i menu del display solo testo?

È stato utile?

Soluzione 3

Ho finito essenzialmente duplicare le azioni, accoppiando, uno con un'immagine, un colpo, eliminando così il vantaggio delle azioni in primo luogo (sigh). D'altra parte, poiché ogni azione si limita a richiamare un metodo unico nel controllore di eseguire il lavoro, non è troppo insidioso e raggruppare le coppie insieme rende ragionevolmente chiaro cosa succede.

Altri suggerimenti

Mi sono imbattuto in questo problema così (tranne che ho voluto un testo diverso per la barra degli strumenti e menu.) Ho finito per usare la stessa azione, ma due diverse istanze di esso.

// Use this one in the menu
Action a = new Action();

// Use this one in the toolbar
Action a2 = new Action();
a2.setImageDescriptor(img);

In alternativa, è possibile memorizzare il descrittore immagine nell'azione per la versione della barra degli strumenti e impostarlo su null per la versione del menu.

Non ho controllato io stesso, ma dare a questo metodo un looksee:

public int getStyle() { ... }

E 'definito nella classe di azione, e sembra restituire il tipo di elemento di interfaccia che il ricorso è rappresentato graficamente come. Così allora si potrebbe ignorare il metodo getImageDescriptor ():

public ImageDescriptor getImageDescriptor() {
    if (getStyle() == AS_DROP_DOWN_MENU)
        return null; // No icon in a menu
    return someImageDescriptor; // Actual icon
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top