2013-04-19 23 views
5

Kızılhaç basıldığında sistem tepsisine giren bir Java uygulamasına sahibim.Java'nın TrayIcon mesajı nasıl kaybolur?

Ne zaman olursa olsun, kullanıcıya uygulamanın hala sistem tepsisinde çalıştığını bildiren bir ileti görüntülüyorum. mesajı kaybolur, Şu an için

... 

    @Override 
    public void windowClosing(WindowEvent e) { 
     try { 
      tray.add(trayIcon); 
      trayIcon.displayMessage("", "The application has been reduced 
       in the system tray, to stop it, press the \"Quit\" button", 
       TrayIcon.MessageType.WARNING); 
      setVisible(false); 
     } catch (AWTException ex) { 
      System.out.println("unable to add to tray"); 
     } 
    } 
... 

üzerine kullanıcı oyunda:

İşte bunun için kod.

Hiçbir şey yapılmasa bile mesaj birkaç saniye sonra sönecek şekilde bir sayaç oluşturmak istiyorum.

Bunu yapmak için iyi bir yöntem bilen var mı? Bunun için mevcut bir yöntemi bulamıyorum.

DÜZENLEME Ben biraz daha uzun denedikten sonra, aslında, sorumu düzeltmek zorunda

, otomatik olarak, diyelim 7-8 saniye izin sonra kararır ama biraz da bulabilir uzun. Ayrıca, kullanıcı yalnızca bir eylemi yürütüyorsa (fareyi hareket ettirmek veya klavyede yazarak)

Yani yeni soru şu şekilde ortadan kalkar: Çözünme zamanını azaltmanın ve yapılandırmayı yapılandırarak mesaj davranışını değiştirmenin bir yolu var mı? Java uygulaması mı yoksa Windows'a özgü mi?

cevap

3

Yani yeni bir soru olacaktır: Java uygulaması yapılandırarak zaman dışarı solmaya azaltmak için bir yol var mı yoksa Windows doğasında vardır?

  • MSDN says in part How long to notify - Windows Vista'da ve daha sonra, bildirimler 9 saniye sabit bir süre için görüntülenir.

  • herhangi bir değişiklik yalnızca Windows boyutuna korumak mümkündür, ancak geçerlidir gibi/tüm messagess


    Eğer kendi Traslucent JDialog oluşturmak için can
  • başvurusunda görünüyor (Şeffaflık olabilir yol çok) sol altta programatik olarak yerleştirilir, solma sönmesi zaman aşımına uğrayacaktır. Salınım Zamanlayıcısı
+1

Belki de böyle bir şey ['AlphaTest'] (http: // stacko) verflow.com/a/2234020/230513)? – trashgod

+0

Kişisel bir JDialog oluşturabilirim, ancak kullanıcının görev çubuğunu belirlediği yere göre konumu değişmeli, küçük bir davranışı değiştirmek için çok iş olurdu. Bence standart TrayIcon mesajını kullanacağım. Ama yine de tencerelerinizi cevap olarak işaretleyeceğim çünkü doğru cevap olduğunu düşünüyorum. – Padrus

+1

@Padrus Bu hesaplamanın hesaplanması çok basittir, çünkü GraphicsEnvironment piksel oranını ve Görev Çubuğu yüksekliğini döndürür veya JFrame.getExtendedSize'den hesaplanabilir, – mKorbel

İlgili konular