如果没有获得焦点,如何激活jframe或jtabbedpane中的键绑定?

时间:2018-04-19 01:20:40

标签: java jframe keyboard-shortcuts keypress jtabbedpane

我在jTabbedPane1

中有这段代码
private void jTabbedPane1KeyPressed(java.awt.event.KeyEvent evt) {                                        
    int t,getkey = evt.getKeyCode();
    if(KeyEvent.VK_F9 == getkey)
    {
        if(t == 0)
        {
            jTabbedPane1.setSelectedIndex(1);
            jTabbedPane1.requestFocusInWindow();
            t = t + 1;
        }
        else if(t == 1)
        {
            jTabbedPane1.setSelectedIndex(0);
            jTabbedPane1.requestFocusInWindow();
            t = t - 1;
        }
    }
 }

但是当jtabbedpane中的焦点丢失时,这段代码和键绑定是没用的。

如何在不获得jtabbedpane焦点的情况下在jframe内触发此按键事件?

1 个答案:

答案 0 :(得分:0)

或者,你可以有一个线程,它连续地将焦点设置到你试图让一个键监听器运行的帧。否则,我认为如果帧没有焦点是不可能的。

在某种意义上,您尝试做的事情将被视为系统范围的密钥监听器。这可以用C / C ++甚至Python实现。

如果你必须使用java,那么你将不得不检查本机库以及java中“native”关键字的用法。 java中的原生代为JVM提供了集成本机代码实现的能力, 即)C / C ++