JAVA:在没有焦点时用HK运行程序

时间:2012-03-23 13:22:12

标签: java focus keyboard-shortcuts jframe

我有程序:

`

import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Main {
    public static void main(String[] args) {
        JLabel time = new JLabel("10");
    JLabel timer = new JLabel("Timer: ");

    JFrame frame = new JFrame("Timer");
    frame.setLayout(new FlowLayout());
    frame.add(timer);
    frame.add(time);
    frame.pack();
        frame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    frame.setLocationByPlatform( true );
    // Set's the window to be "always on top"
    frame.setAlwaysOnTop( true );
    frame.setVisible(true); 
    }
}

`

当我按下键盘上的键,如“VK_NUMPAD0”时,定时器应开始倒计时。我有一个让它倒计时的课程。

我的问题是:当画面聚焦时,如何聆听键盘按键。因为它只会在顶部。

1 个答案:

答案 0 :(得分:0)

你做不到。使用JNI编写更深层次的工作挂钩是可能的,但有点矫枉过正。

编辑:嗯,您可能会尝试使用不是100%全译的全屏窗口(http://java.sun.com/developer/technicalArticles/GUI/translucent_shaped_windows/)来获取所有键盘事件(使窗口完全转换为不允许您接收关键事件),但除此之外,它很难实现。

P.P.S:Java System-Wide Keyboard Shortcut