2011-06-17 18 views
5

Ho una sezione nella GUI che viene generata dinamicamente in base a un elenco di oggetti. Quindi, per ogni oggetto in quell'elenco voglio creare un JButton e associare una scorciatoia da tastiera.Come assegnare dinamicamente i tasti ai pulsanti?

Ad esempio:

for (String tag : testTags) { 
    new JButton(tag).setMnemonic(KeyEvent.VK_F1); 
} 

Come faccio a fare il codice "setMnemonic (KeyEvent.VK_F1)" dinamica in modo elegante? C'è un modo per ottenere automaticamente un range di chiavi e quindi usarlo in questa iterazione?

Grazie!

risposta

4

Un Action è adatto per questo. Vedi How to Use Actions per ulteriori informazioni.

+3

A lungo termine, questo è il modo migliore per andare. – vehk

+0

Oh, bello. In realtà non conoscevo le azioni. Questo sembra risolvere il mio problema! Grazie! – ktulinho

2
AbstractButton.setMnemonic(int) 

Basta scorrere l'intervallo di valori accettati.

+1

Qualcosa come: 'int key = 112; new JButton (tag) .setMnemonic (key ++) '? – ktulinho

+0

lungo queste linee, sì –

2

O creare un array contenente le chiavi con

int[] keys = {KeyEvent.VK_F1,KeyEvent.VK_F2,[...]}; 

o iterare su tutta la gamma dei tasti F1-F12 (112 - 123)

int key = KeyEvent.VK_F1; 
for (String s : strings) { 
    new JButton(s).setMnemonic(key++); 
} 

Dovete verificare se chiave è ancora nell'intervallo (123 essendo F12), però.

Problemi correlati