【问题标题】:How to activate the keybindings in the jframe or jtabbedpane if the focus is not gained?如果没有获得焦点,如何激活 jframe 或 jtabbedpane 中的键绑定?
【发布时间】:2018-04-19 01:20:39
【问题描述】:

我的 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 中的焦点丢失时,此代码和键绑定将毫无用处。

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

【问题讨论】:

    标签: java swing jframe keylistener jtabbedpane


    【解决方案1】:

    或者,您可以使用一个线程将焦点连续设置到您尝试运行关键侦听器的帧。否则,如果该帧没有焦点,我认为这是不可能的。

    从某种意义上说,您尝试做的事情将被视为系统范围的按键侦听器。这可以用 C/C++ 甚至 Python 来实现。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-29
      • 2011-09-13
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 2019-05-22
      • 1970-01-01
      相关资源
      最近更新 更多