5

我正在开发一个复杂的桌面应用程序,该应用程序具有多个用于工作流的选项卡式窗格,每个窗格都塞满了不同的按钮、标签和其他 UI 元素。它们中的每一个都需要定义一个助记符,而这些通常会因为要定义的字母用完而发生冲突。

我注意到在 Windows 上,如果为两个控件定义了相同的助记符,那么按下它会在它们之间循环,并且它们会在释放键时激活。使用 Swing,如果您使用相同的键定义其中的 2 个,助记符根本不会激活。

有解决方法吗?

4

1 回答 1

1

我的建议是使用 aKeyListener然后根据显示的选项卡区分操作。

伪代码

public void keyPressed(KeyEvent e){
    //assuming 'O' activates Open button on two different tabs
    if(key == 'O'){
        if(activeTab == tab1)
            doStuff1();
        else if(activeTab == tab2)
            doStuff2();
    }
}

您可以找到一种使其在真实代码中工作的方法。

于 2012-10-03T21:26:39.123 回答