2011-06-17 16 views
5

Mam sekcji w moim GUI, który jest generowany dynamicznie zgodnie z listą obiektów. Tak więc dla każdego obiektu na tej liście chcę utworzyć JButton i powiązać skrót klawiaturowy.Jak dynamicznie przydzielać klawisze do przycisków?

Na przykład:

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

Jak zrobić kod "setMnemonic (KeyEvent.VK_F1)" dynamiczny w elegancki sposób? Czy jest jakiś sposób, aby automatycznie uzyskać zakres kluczy, a następnie użyć go w tej iteracji?

Dzięki!

Odpowiedz

4

Dobrze nadaje się do tego Action. Aby uzyskać więcej informacji, patrz How to Use Actions.

+3

W dłuższej perspektywie jest to najlepsza droga. – vehk

+0

Och, miło. Właściwie nie wiedziałem o akcjach. To wydaje się rozwiązać mój problem! Dzięki! – ktulinho

2
AbstractButton.setMnemonic(int) 

Po prostu przejrzyj zakres akceptowanych wzorców.

+1

Coś jak: 'klawisz int = 112; nowy JButton (tag) .setMnemonic (klawisz ++) '? – ktulinho

+0

wzdłuż tych linii, tak –

2

albo utworzyć tablicę zawierającą klucze z

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

lub iteracyjne nad zakresu klawiszy F1-F12 (112 - 123)

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

Trzeba sprawdzić, czy klucza jest nadal w zasięgu (123 to F12).

Powiązane problemy