Java Swing中存在冲突的助记符



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

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

有解决办法吗?

我的建议是使用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();
    }
}

你可以找到一种方法让它在真实的代码中工作。

相关内容

  • 没有找到相关文章

最新更新