Klikanie PPM lub LPM

0

Chciałbym, aby po kliknięciu LPM/PPM wyświetlało mi komunikat który klawisz wcisnąłem. To jest mój pierwszy, examplowy program, więc chciałbym zobaczyć, co trzeba zrobić żeby takie coś działało. Z góry dzięki za pomoc. Napisałem coś takiego na początek...

public class Example{}
public static void main(String[] args) {
	  MouseListener mouselistener = new MouseListener() {

		public void mouseReleased(MouseEvent arg0) {}		
		public void mousePressed(MouseEvent arg0) {}
		public void mouseExited(MouseEvent arg0) {}
		public void mouseEntered(MouseEvent arg0) {}
		public void mouseClicked(MouseEvent e) {
			if(e.getButton()==MouseEvent.BUTTON1)
			System.out.println("LPM");
                        if(e.getButton()==MouseEvent.BUTTON3)
			System.out.println("PPM");
		}
	};
0

Musisz to do czegoś podpiąć, tzn do jakiegoś obiektu który nasłuchuje na zdarzenia. Musiałbyś sobie zrobić jakieś okienko JFrame i do niego dodać taką akcję.

0

OK. Dodałem ręce i nogi do klasy... Ale fakt faktem, nic się nie wyświetla ;/

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Example extends JFrame{
	Example(){
	    setSize(0, 0);   
	    setVisible(true);
	    MouseListener mouselistener = new MouseListener() {
	    	 
            public void mouseReleased(MouseEvent arg0) {}                
            public void mousePressed(MouseEvent arg0) {}
            public void mouseExited(MouseEvent arg0) {}
            public void mouseEntered(MouseEvent arg0) {}
            public void mouseClicked(MouseEvent e) {
                    if(e.getButton()==MouseEvent.BUTTON1)
                    System.out.println("LPM");
                    if(e.getButton()==MouseEvent.BUTTON3)
                    System.out.println("PPM");
            }
    };
	}
    public static void main(String args[]){
        SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                        new Example();
                }
        });
}
}
0

Tworzysz listenera, ale wciąż nie dodajesz go do JFrame (zerknij na metodę addMouseListener())

0

głupi ja :)

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Example extends JFrame{
	Example(){
	    setSize(0, 0); 
	    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    setVisible(true);
	    MouseListener mouselistener = new MouseListener() {
	    	 
            public void mouseReleased(MouseEvent arg0) {}                
            public void mousePressed(MouseEvent arg0) {}
            public void mouseExited(MouseEvent arg0) {}
            public void mouseEntered(MouseEvent arg0) {}
            public void mouseClicked(MouseEvent e) {
                    if(e.getButton()==MouseEvent.BUTTON1)
                    System.out.println("LPM");
                    if(e.getButton()==MouseEvent.BUTTON3)
                    System.out.println("PPM");
            }
    };
    addMouseListener(mouselistener);
	}
    public static void main(String args[]){
        SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                        new Example();
                }
        });
}
}

Działa, z tym że w obrębie okna. Moim celem jest program do zliczania kliknięć, ale nie tylko w obrębie okienka.

0

To poczytaj o globalnym hooku na myszkę ;]

0

A coś konkretniej bym prosił. O co mam googla zapytać? Rzuciłeś mi temat globalnego hooka, a to moje początki. Byłbym wdzięczny za jakikolwiek tutorial.

0

Na sam początek to nie zrobisz tego bo

  1. bez urazy ale po prostu nie zrobisz
  2. Wiąże się to z wykorzystaniem WinApi
  3. Wykorzystaniem C++ (lub c#)
  4. Utworzeniem DLL
  5. Wykorzystaniem DLL w JVM czyli JNI
  6. będzie to rozwiązanie tylko dla windowsa
  7. Jak potrzebujesz KONKRETNEJ pomocy, to napisz do mnie na pw :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1