2014-07-18 15 views
7

Java veya JFrame'in programda bir şey olduğunda kullanıcıyı uyarıp uyarmayacağını merak ediyordum. Örneğin, Skype'ta yeni bir mesaj aldığınızda, Skype simgeleri arka planı sarıya dönüşür. "You have received a new message!"Görev çubuğunda JFrame uyarısı nasıl oluşturulur?

Bunu Java'da yapabilir miyim?

+0

Programda bir şeyden ne demek istiyorsunuz? – Braj

+0

Belirli bir yöntem çalışmayı bitirdiğinde veya bir IF deyimi doğru olduğunda döndüğünde. –

+1

olası bir kopyası [Salıncakta bir bildirim nasıl oluşturulur] (http://stackoverflow.com/questions/3240415/how-to-create-a-notification-in-swing) – Frakcool

cevap

5

En azından, bir bildirim gibi görünen ve gerekirse başlığı da değiştiren JFrame#setIconImage() yöntemini arayarak JFrame'in simgesini değiştirebilirsiniz.

Herhangi bir bildirim olduğunda göstermek istediğiniz simgeyi oluşturun ve simgeyi istediğiniz yere koddan ayarlayın.


küçültülmüş formda pencere Swing Timer kullanılıyorsa bir aralıkta iki görüntü ve takas kullanmak ve pencere tekrar deiconified zaman sayacı durdurabilirsiniz bir parıltı (göz kırpma) efekti yaratmak. Eğer siz istediğiniz gibi pencere yanıp söner işlev toFront() veya requestFocus() çağırdığınızda

private boolean swap; 
private Timer timer; 

.... 

final Image onImage = new ImageIcon(ImageIO.read(new File("resources/1.png"))).getImage(); 
final Image offImage = new ImageIcon(ImageIO.read(new File("resources/2.png"))).getImage(); 

// interval of 500 milli-seconds 
timer = new Timer(500, new ActionListener() { 

    @Override 
    public void actionPerformed(ActionEvent arg0) { 
     if (swap) { 
      setIconImage(onImage); 
     } else { 
      setIconImage(offImage); 
     } 
     swap = !swap; 
    } 
}); 
timer.setRepeats(true); 

// check whether window is in ICONIFIED state or not 
if (getExtendedState() == JFrame.ICONIFIED) { 
    timer.start(); 
} 


addWindowListener(new WindowAdapter() { 

    public void windowDeiconified(WindowEvent e) { 
     // set the icon back to default when window is DEICONIFIED 
     timer.stop(); 
    } 
}); 
+0

Nevermind'i araştırmanız gerekecek, doğru okumadım. – user3758041

+1

da "Işık açık ve kapalı" olarak nasıl söyleyeceğimi göstermek için bir Zamanlayıcı kullanabilir? Bunu nasıl açıklayacağımı bilmiyorum ... Ben "kızdırma" yapmak demek istiyorum. – Frakcool

+1

@Frakcool Evet güzel bir şekilde ben de yazıya düzenledim. – Braj

0

:

daha How to Use Swing Timers

örnek kodu okuyun. Tek sorun, odaklanma kazanacak olmasıdır, ancak ihtiyacınız olmadığı sürece sorun olmaz. (Pencerenin sadece bir isteğinin önüne geçememesi)

İlgili konular