tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von genodeftest
  • 1 Beitrag von SE
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
284
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von January
    January January ist offline Mitglied Bronze
    Registriert seit
    Aug 2010
    Beiträge
    32
    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();
        }
    }
    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();
            }
        }
    }
    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).

    Danke für eure Hilfe!
    January
     

  2. #2
    genodeftest genodeftest ist offline Mitglied Brillant
    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.
    January bedankt sich. 
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  3. #3
    genodeftest genodeftest ist offline Mitglied Brillant
    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)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  4. #4
    SE 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.
    January bedankt sich. 

  5. #5
    Avatar von January
    January January ist offline Mitglied Bronze
    Registriert seit
    Aug 2010
    Beiträge
    32
    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
    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
                    
                }
            });
    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.

    Danke, January
     

  6. #6
    genodeftest genodeftest ist offline Mitglied Brillant
    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)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  7. #7
    Avatar von January
    January January ist offline Mitglied Bronze
    Registriert seit
    Aug 2010
    Beiträge
    32
    Ah, ok. Dann hat sich das wohl erledigt
    Danke!
     

Ähnliche Themen

  1. .gif-Bild wird bei mouseEntered nicht angezeigt
    Von Maddin im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 04.07.10, 09:14
  2. Java Trayicon unter Windows nicht sichtbar
    Von Infomatrixx im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 16.04.09, 20:50
  3. Applikation ohne GUI, aber mit TrayIcon
    Von splat im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 10.11.07, 14:44
  4. Antworten: 5
    Letzter Beitrag: 15.10.07, 12:15
  5. [AWT] mouseReleased nicht erkannt
    Von Lemiras im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 08.08.05, 14:35

Stichworte