# Globaler MouseListener



## Wolfy0013 (25. Mai 2010)

Hallo allerseits!
Meine heutige Frage:
Wie kann ich einen globalen MouseListener erstellen, sodass ich ihn auch abfragen kann, wenn die Maus den JFrame verlassen hat.
Ich will nähmlich abfragen, dass wenn das Fenster den Focus verloren hat und die Maus außerhalb losgelassen/released wurde das Fenster sich schließen soll.
Ich hoffe, meine Formulierung ist verständlich, Wolfy


----------



## Bratkartoffel (25. Mai 2010)

Hallo,

da Java in einer VM läuft, denke ich nicht, dass man globale Ereignisse so einfach abfragen kann.
Hab da mal kurz danach gegoogelt und folgendes gefunden: http://www.jotschi.de/?p=90

Läuft über JNI und ist somit nicht plattformunabhängig, aber das Ziel wird erreicht.

Gruß
BK


----------



## Artorius (25. Mai 2010)

Hi!
Du kannst zwar mittels des mouseExited-Events abfangen, wann die Mouse das Frame verlässt, was aber ausserhalb der Java Komponenten passiert, kannst du mit einfachen Java Mitteln nicht herrausfinden. Dazu würdest du Zugriff auf das Betriebssystem benötigen, was beispielsweise mit JNA https://jna.dev.java.net/ möglich ist.

*grüssle*


----------



## Tinipieps (25. Mai 2010)

Wolfy0013 hat gesagt.:


> Ich will nähmlich abfragen, dass wenn das Fenster den Focus verloren hat und die Maus außerhalb losgelassen/released wurde das Fenster sich schließen soll.



Hallo!

```
frame.addMouseListener(new MouseListener(){
	@Override
	public void mouseClicked(MouseEvent arg0) {
	// TODO Auto-generated method stub
	}

	@Override
	public void mouseEntered(MouseEvent arg0) {
	// TODO Auto-generated method stub
	}

	@Override
	public void mouseExited(MouseEvent arg0) {
		System.exit(0);
	}

	@Override
	public void mousePressed(MouseEvent arg0) {
	// TODO Auto-generated method stub
	}

	@Override
	public void mouseReleased(MouseEvent arg0) {
	// TODO Auto-generated method stub				
	}
					
});
```

Es gibt bestimmt jemanden, der es besser weiß...


----------



## Artorius (25. Mai 2010)

@Tinipieps: Die Anforderung war aber, Frame verlassen UND ausserhalb des Frames wird die Maus losgelassen. Du hast jetzt nur den ersten Teil erfüllt

*grüssle*


----------



## Wolfy0013 (25. Mai 2010)

Nun, ich muss zu meinem Leidwesen zugeben, dass ich mich mit beiden Möglichkeiten schwer tue.
Bei ersterem deshalb, da da ja irgendwie noch kein MouseListener dabei ist.
Bei zweiterem, weil ich die Dokumentation auf Java.net nicht im Ansatz verstehe...
Vielleicht kann mir ja jemand in einer der beiden Möglichkeiten genauer weiterhelfen.


----------



## Tinipieps (26. Mai 2010)

Artorius hat gesagt.:


> @Tinipieps: Die Anforderung war aber, Frame verlassen UND ausserhalb des Frames wird die Maus losgelassen. Du hast jetzt nur den ersten Teil erfüllt
> 
> *grüssle*



Oh...danke für den Hinweis 

@Wolfy0013:
Sorry, aber auf die schnelle krieg ich mich in JNA auch nicht eingearbeitet...


----------



## HonniCilest (26. Mai 2010)

Wolfy0013 hat gesagt.:


> Hallo allerseits!
> [...]Ich will nähmlich abfragen, dass wenn das Fenster den Focus verloren hat [...]



Für diesen Part würde ich http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/WindowFocusListener.html vorschlagen...

Ansonsten hatte ich mal folgenden Link gefunden: http://mouse1.software.informer.com
Ich fand immer er klang recht zuversichtlich. Ich weiß nur nicht, ob es auch für deine Anforderungen passt. Ich habe es leider nie ausprobiert.


Ich hoffe die Links helfen dir weiter.


----------

