ToolTip aktualisieren

Colt45

Aktives Mitglied
Moin, ich habe ein kleines Programm geschrieben, das im SystemTray liegt und einen ToolTip bekommen soll. Nun soll in diesem ToolTip eine Art Timer angezeigt werden, der Sekunden runterzählt. Dies soll allerdings auch aktualisiert werden, solange der ToolTip angezeigt wird. Momentan muss ich den Cursor immer erst wegnehmen und wieder hinbewegen, damit er einen neuen Wert annimmt. Hier mal der Code:

Java:
Runnable timeIsRunning = new Runnable()
		    {
		    	public void run()
		    	{
		    		while(countdown > 0)
		    		{
		    			countdown--;
		    			
		    			st.getTrayIcon().setToolTip("hh:" + countdown/3600 + " mm:" + countdown/60 + " ss:" + countdown);
		    			try 
		    			{
		    				Thread.sleep(1000L);
		    			} 
		    			catch (InterruptedException e) 
		    			{
		    				e.printStackTrace();
		    			}
		    			
		    		}
		    	}
		    };
Danke schonmal...
 
Ich schreibe über Handy was so gut wie unmöglich in dem Forum hier ist weil das Textfeld nicht richtig will. versuche aber trotzdem mal zu helfen.

Schonmal versucht repaint(); nach der Änderung aufzurufen? Evt. direkt mal die Java Doc durchsuchen ob eine Methode für soetwas existiert.
Schlussendlich hilft dann evt. noch das Durchsuchen des Sourcecodes der Klasse (einfach bei Google: Java [Klasse] Sourcecode). Herausfinden wie sie genau funktioniert hilft oft dabei die Schwachstelle zu finden.

Gruß
Net
 
An repaint() hab ich auch schon gedacht, aber da die Methode getToolTip() einen String zurückgibt, scheidet das schonmal aus. Ich kann auch leider nicht trayIcon.setToolTip(new JToolTip()) machen, da auch hier nur ein String akzeptiert wird. Ein Blick in den Sourcecode von TrayIcon verrät:
Java:
   public void  [More ...] setToolTip(String tooltip) {
        this.tooltip = tooltip;
        TrayIconPeer peer = this.peer;
        if (peer != null) {
            peer.setToolTip(tooltip);
        }
    }

TrayIconPeer ist ein mir und auch der JavaDoc unbekanntes Objekt, das sich auch nicht ansprechen lässt. Ich vermute fast, dass dies ein unlösbares Problem ist. Ich hoffe, jemand hatte dieses Problem bereits und eine lösung dafür gefunden...
 

Zurück
Oben