【问题标题】:How to dynamically assig keys to buttons?如何为按钮动态分配键?
【发布时间】:2011-06-17 18:24:25
【问题描述】:

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

例如:

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

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

谢谢!

【问题讨论】:

    标签: java swing jbutton keyevent


    【解决方案1】:

    Action 非常适合此操作。请参阅How to Use Actions 了解更多信息。

    【讨论】:

    • 从长远来看,这是最好的方法。
    • 哦,很好。其实我对动作一无所知。这似乎解决了我的问题!谢谢!
    【解决方案2】:
    AbstractButton.setMnemonic(int)
    

    只需遍历接受的整数范围。

    【讨论】:

    • 类似:int key = 112; new JButton(tag).setMnemonic(key++)?
    【解决方案3】:

    要么创建一个包含您的密钥的数组

    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++);
    }
    

    不过,您必须检查 key 是否仍在范围内(123 是 F12)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多