如何动态地为按钮分配按键?

时间:2011-06-17 18:24:25

标签: java swing jbutton keyevent

我的GUI中有一个部分是根据对象列表动态生成的。 因此,对于该列表中的每个对象,我想创建一个JButton并关联一个键盘快捷键。

例如:

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

如何以优雅的方式使代码“setMnemonic(KeyEvent.VK_F1)”动态化?有没有办法自动获取一系列键,然后在此迭代中使用它?

谢谢!

3 个答案:

答案 0 :(得分:4)

Action非常适合这种情况。有关详情,请参阅How to Use Actions

答案 1 :(得分:2)

AbstractButton.setMnemonic(int)

只需迭代已接受的整数范围。

答案 2 :(得分:2)

创建一个包含

键的数组
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)。