Klikanie PPM lub LPM

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...

Kopiuj
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");
		}
	};
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
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ę.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
0

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

Kopiuj
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();
                }
        });
}
}
airborn
  • Rejestracja:prawie 16 lat
  • Ostatnio:prawie 7 lat
  • Postów:274
0

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

0

głupi ja :)

Kopiuj
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.

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

To poczytaj o globalnym hooku na myszkę ;]


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
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.

Shalom
Nic nie poradzę ze sobie na początek wybrałeś trudną kwestię. Podałem ci informację o tym jak nazywa się to co chcesz zrobić. Nikt nie płaci mi za googlanie dla ciebie.
Antoniossss
  • Rejestracja:prawie 16 lat
  • Ostatnio:ponad 10 lat
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 :)

www.toptraker.pl
TopTraker! - I wiesz co jest grane!
Mój własny projekt w Javie - najnowsza wersja już jest!
edytowany 2x, ostatnio: Antoniossss
Olamagato
Zrobi to tworząc nieudekorowane, zmaksymalizowane okno (BOTH_MAXIMIZED i ALWAYS_ON_TOP w ustawieniach), ale to jest hak i na dodatek nie na jego poziomie
Antoniossss
No tak tak jasne, i ciekawe jak będzie klikał w to co jest pod tym Twoim oknem. NIE to nie jest hak
Olamagato
Stara klasa Robot i po problemie. Cokolwiek pod oknem jest może zostać przechwycone w takim oknie, a następnie "kliknięte" (już bez niego). Bez żadnych kombinacji z grzebaniem poza Javą. Tyle, że nie jest prostą sprawą wykorzystanie takiego sposobu w układzie wielomonitorowym.
Antoniossss
Dobra co być sobie tam nie napisał, jestem za dll'em. Chciał hook to pisze o hook'u nie o bypassach.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.