2014-12-14 2 views
1

получил мой первый вопрос и вот он.MouseListener без gui

Я программирую в java и делаю программу litte, где я хочу отслеживать событие мыши и делать статистику. Например, количество правых/левых кликов, перемещений, времени между двойными щелчками, средних и т. Д.

Однако я не могу сделать небольшую программу и запустить в фоновом режиме без каких-либо компонентов gui в java. Я не могу проверить свою программу и позволить ей (например) печатать строки в консоли (в eclipse) для событий, которые она получает от мыши, не прибегая к gui.

Я не нашел ничего, где мышь может быть использована без JPanel или где я могу использовать прорези для мышей без gui. Разве это невозможно в java или есть способы, которыми я могу обойти это?

Заранее благодарен!

ответ

2

Хотя это можно сделать с помощью Java с использованием JNI или JNA или других инструментов, которые необходимы для того, чтобы получить Java ближе к ОС, пожалуйста, поймите, что Java была построена как агностика операционной системы, насколько это возможно - в других слова, которые были построены так, что такого рода вещи было бы очень трудно обойтись без прыжка через упомянутые обручи. Лучше всего, я думаю, использовать инструмент, который делает ближе к ОС, таким как C++ для всех или C# или AutoIt (я рекомендую последнее очень сильно), если Windows и другие аналогичные инструменты для других ОС.

+0

Спасибо, я кратко взглянул на JNI или JNA и действительно нуждаюсь в некоторой работе, чтобы получить какой-то крючок в os для ретрансляции входных данных. – Eye

0

Несмотря на все @ на воздушной подушке, полные угрей (правильно), это все еще возможно без какого-либо собственного кода.

Однако, вы должны опроса событий мыши вместо listenning к ним.

Попробуйте это:

import java.awt.MouseInfo; 

public class MouseWithoutGUI { 
    public static void main(String[] args) throws Exception { 
     while (true) { 
      System.out.println(MouseInfo.getPointerInfo()); 
      try { 
       Thread.sleep(10); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 

Вы можете написать систему, основанную на события такого цикла опроса, чтобы сделать его выглядеть вы listenning событий.

У меня много недостатков, я знаю. Но этого может быть достаточно для ваших нужд.

+1

Да, вот как я сейчас получаю информацию о положениях мыши, но MouseInfo не говорит мне, когда нажимается кнопка мыши, если я прав? – Eye

+0

Вы правы. Это дает только местоположение мыши. – Elist

Смежные вопросы