JAVA: запускать программу с HK, когда не в фокусе - PullRequest
0 голосов
/ 23 марта 2012

У меня есть программа:

`

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 голосов
/ 23 марта 2012

Вы не можете. Использование JNI для написания более глубокого рабочего хука возможно, но отчасти излишне.

РЕДАКТИРОВАТЬ: Ну, вы можете попытаться использовать не 100% полупрозрачное полноэкранное окно (http://java.sun.com/developer/technicalArticles/GUI/translucent_shaped_windows/), чтобы получить все события клавиатуры (если сделать окно полностью прозрачным, вы не сможете получать ключевые события), но кроме этого, его вряд ли достичь.

P.P.S: Общесистемное сочетание клавиш Java

...