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, botów: 0