2Danke
ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
284
284
EMPFEHLEN
-
Hallo zusammen.
Kann mir jemand erklären, warum im folgendem Code die überschriebenen Methoden "mouseReleased", "mouseClicked" und "mousePressed" reagieren, "mouseEntered" und "mouseExited" aber nicht? Ich komme einfach nicht drauf...
Code java:1 2 3 4 5 6 7
package beispiel; public class START { public static void main(String[] args) { new Tray(); } }
Ich brauche möchte auf die mouseEntered-Methode zugreifen, um den Tooltip erst in dem Moment zu generieren, in dem er gebraucht wird (nämlich dann wenn die Maus über das Icon fährt).Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
package beispiel; import java.awt.Image; import java.awt.SystemTray; import java.awt.Toolkit; import java.awt.TrayIcon; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; public class Tray{ private static final long serialVersionUID = 1L; private static TrayIcon myTrayIcon; private static SystemTray trayLeiste; public Tray(){ try { Image iconGruen = Toolkit.getDefaultToolkit().getImage( getClass().getResource("/icons/UhrGruen16x16.png")); myTrayIcon = new TrayIcon(iconGruen); trayLeiste = SystemTray.getSystemTray(); trayLeiste.add(myTrayIcon); myTrayIcon.addMouseListener(new MouseListener() { @Override public void mouseReleased(MouseEvent e) { System.out.println("Released"); } @Override public void mousePressed(MouseEvent e) { System.out.println("Pressed"); } @Override public void mouseExited(MouseEvent e) { System.out.println("Exited"); } @Override public void mouseEntered(MouseEvent e) { System.out.println("Entered"); } @Override public void mouseClicked(MouseEvent arg0) { System.out.println("Clicked"); } }); } catch (Exception e) { e.printStackTrace(); } } }
Danke für eure Hilfe!
January
-
10.08.11 19:45 #2
- Registriert seit
- Jun 2009
- Beiträge
- 870
Das liegt am Betriebssystem bzw. am Desktop Envrionment. Unter Gnome3 wäre es z.B. vollkommener Unsinn, so etwas für TrayIcons zu implementieren.
Vermutlich ist das in Java (OpenJDK, Oracles JRE) einfach nicht implementiert.Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
10.08.11 20:23 #3
- Registriert seit
- Jun 2009
- Beiträge
- 870
Ich kann dein Programm bei mir nicht mal testen, da Gnome3 mit den "normalen" Tray-Icons nichts anfangen kann.
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
10.08.11 21:09 #4SE Tutorials.de Gastzugang
Wie GNOME kann mit "normalen" TrayIcons nichts anfangen ? Was muss man denn dafür verweden ? SWT ? Kann auch an deinem JDK / JRE liegen das es unterschieden zwischen OpenJDK und Oracle's CLOSED Version gibt.
BTW : ich habs getestet : bei mir reagieren mouseEntered und mouseExited auch nicht.
-
Hallo zusammen und danke für eure Antworten.
In meinem Fall läuft das Programm unter Windows7 32Bit.Den Gedanken, dass es am Betriebssystem liegt hatte ich auch schon. Allerdings müsste es doch eine Möglichkeit geben, so etwas wie "mouseEntered" abgreifen zu können. Der normale Tooltip wird ja schließlich auch angezeigt, wenn ich mit der Maus auf das Icon fahre...
Und ich habe gerade festgestellt, dass wenn ich
implementiere, auch "mouseMoved" Ergebnisse liefert .Im Notfall würde ich mich vielleicht daran hängen. Vielleicht hat ja aber noch jemand von euch ne bessere Idee.Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14
myTrayIcon.addMouseMotionListener(new MouseMotionListener() { @Override public void mouseMoved(MouseEvent e) { System.out.println("move"); } @Override public void mouseDragged(MouseEvent e) { // TODO Auto-generated method stub } });
Danke, January
-
11.08.11 12:09 #6
- Registriert seit
- Jun 2009
- Beiträge
- 870
Der Tooltip wird aber auch mit Betriebssystem-eigenem Code generiert, nicht mit Java-Code. Deshalb hast du kenen Einfluss darauf.
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
Ah, ok. Dann hat sich das wohl erledigt

Danke!
Ähnliche Themen
-
.gif-Bild wird bei mouseEntered nicht angezeigt
Von Maddin im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 04.07.10, 09:14 -
Java Trayicon unter Windows nicht sichtbar
Von Infomatrixx im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 16.04.09, 20:50 -
Applikation ohne GUI, aber mit TrayIcon
Von splat im Forum .NET Windows FormsAntworten: 2Letzter Beitrag: 10.11.07, 14:44 -
Dienst gestartet =>sobald SystemTray vorhanden: TrayIcon einfügen
Von undertaker im Forum JavaAntworten: 5Letzter Beitrag: 15.10.07, 12:15 -
[AWT] mouseReleased nicht erkannt
Von Lemiras im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 08.08.05, 14:35





Zitieren
Login





