Как динамически назначать клавиши на кнопки? - PullRequest
5 голосов
/ 17 июня 2011

У меня есть раздел в моем GUI, который генерируется динамически в соответствии со списком объектов.Итак, для каждого объекта в этом списке я хочу создать JButton и связать сочетание клавиш.

Например:

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

Как мне сделать код "setMnemonic (KeyEvent.VK_F1) "динамично и элегантно?Есть ли способ автоматически получить диапазон ключей, а затем использовать его в этой итерации?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 17 июня 2011

An Action хорошо подходит для этого.Подробнее см. Как использовать действия .

2 голосов
/ 17 июня 2011

Либо создайте массив, содержащий ваши ключи с помощью

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

, либо выполните итерацию по диапазону клавиш F1-F12 (112 - 123)

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

Вам необходимо проверитьесли клавиша все еще находится в диапазоне (123 означает F12), то.

2 голосов
/ 17 июня 2011
AbstractButton.setMnemonic(int)

Просто переберите диапазон принятых целочисленных значений.

...