Java: как поддерживать правильное функционирование моего приложения, даже если у меня игра открыта, когда она работает в фоновом режиме - PullRequest
1 голос
/ 23 марта 2012

Я знаю, что название мало что говорит, но здесь я приведу более четкое объяснение:

Я создал инструмент / приложение в netbeans, расширяющее JFrame.У него есть кнопка, и я добавил keyListener, когда кнопка нажата.Он получает, если нажата кнопка VK_DOWN, если да, он нажимает ее 4 раза, а затем нажимает ввод.это работает очень хорошо, но я хочу использовать это в игре.Но когда у меня запущено приложение, если я нажимаю на что-то другое, оно убирает приоритет (я надеюсь, что это правильное слово здесь ...), оно больше не работает, если я не нажму на приложение и снова не сделаю его приоритетным.

Вот код для кнопки:

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    jButton1.addKeyListener(new KeyAdapter() {
    public void keyReleased(KeyEvent e) {

    }
    public void keyTyped(KeyEvent e) {
    // TODO: Do something for the keyTyped event
    }
    public void keyPressed(KeyEvent e) {
    // TODO: Do something for the keyPressed event
        if (e.getKeyCode() == e.VK_L){
            System.out.println("Works");
        }
        if (e.getKeyCode() == e.VK_DOWN){
            System.out.println("Down Arrow Pressed!");
            e.setKeyCode(e.VK_DOWN);
            e.setKeyCode(e.VK_DOWN);
            e.setKeyCode(e.VK_DOWN);
            e.setKeyCode(e.VK_DOWN);
            e.setKeyCode(e.VK_ENTER);

        }
    }
    });
}

Я хочу нажать клавишу со стрелкой VK_DOWN в игре и позволить приложению нажать ее 4 раза, а затем нажать Enter самостоятельно.Это работает только тогда, когда я запускаю приложение поверх всего остального;но если я запускаю игру, игра имеет более высокий приоритет, поэтому приложение не работает ..

Пожалуйста, помогите.

Ответы [ 3 ]

3 голосов
/ 23 марта 2012

Ознакомьтесь с этим API:

"JNativeHook - это библиотека, обеспечивающая глобальное перехватывание клавиатуры и мыши для Java. Основная цель - предоставить портативный и надежный метод доставки событий клавиатуры и мыши в приложение Javaв противном случае он был бы недоступен. Это полезно для приложений, которые работают в фоновом режиме, но могут потребовать взаимодействия с пользователем, хотя бывают горячие клавиши или события мыши. "

http://code.google.com/p/jnativehook/

0 голосов
/ 23 марта 2012

Э-э, не уверен, что он будет работать, но попробуйте класс Robot из пакета awt, чтобы сгенерировать ваши Key-Events. Он будет работать лучше, чем ваш код.

0 голосов
/ 23 марта 2012

Вы не можете делать то, что вы хотите сделать с Java, если вы не используете некоторый нативный код.

...