PDA

Visualizza la versione completa : (java) jmenuitem


abcd1000
28-10-2003, 20:14
Ho un programma (un editor) fatto con le swing
Il programma ha una menu bar
Ci sono vari menu ognouno con i propri pulsanti
Ad ogni pulsante è stato associato un tasto veloce

Per esempio per non mostrare la status bar si preme F8
ecc...

L'istruzione per associar eun tasto veloce ad ogni pulsante del menu è:

mi.setAccelerator(KeyStroke.getKeyStroke("F8"));

dove mi è il jmenu item su cui settare il tasto veloce
Il problema è questo
Funzionano tutti i tasti veloci da F1 a F12 tranne F10
Se setto F10 su un jmenuitem invece di chiamare l'azione corrispondente al pulsante mi si apre il menu "File" (che è il primo menu che compone la menubar)

qualcuno sa dirmi perchè? e come fare a dirgli di non aprire il menu a tendina?

abcd1000
29-10-2003, 00:41
Ho notato queso:
di default premendo F10 si apre il primo menu della barra menu
Se non voglio che questo accada e se volessi associare F10 ad un pulsante della barra dei menu come posso fare?

abcd1000
30-10-2003, 14:05
ho disabilitato l'azione associata al tasto F10 della tastiera con il seguente codice

JTextPAne editor = new JTextPane();

Action doNothing = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
//do nothing
}
};
editor.getInputMap().put(KeyStroke.getKeyStroke("F10"), "doNothing");
editor.getActionMap().put("doNothing",doNothing);

Poi ho scritto

mi.setAccelerator(KeyStroke.getKeyStroke("F10"));

dove mi è il jmenutiem al quale voglio associare il tasto F10

Accanto alla pulsante viene scritto correttamente F10, adesso premo F10 e non succede nulla... perchè non esegue l'azione del pulsante?

Help

Loading