Java Swing中的助记符冲突

时间:2012-08-01 07:47:30

标签: java swing mnemonics

我正在开发一个复杂的桌面应用程序,其中包含多个用于工作流程的选项卡式窗格,每个窗口都包含不同的按钮,标签和其他UI元素。它们中的每一个都需要一个助记符定义,并且由于字母用完而无法定义。

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

有解决方法吗?

1 个答案:

答案 0 :(得分:1)

我的建议是使用KeyListener,然后根据显示的标签区分操作。

<强>伪代码

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

您可以找到一种方法使其在实际代码中运行。