2010-11-20 22 views
1

Bir Java Swing tabanlı program yazıyor ve en çok kullanılan özelliklere hızlı erişim için sistem tepsisi simgesini görüntüleyebilen JFrame yazıyorum. Şimdi, program penceresi minimize edildiğinde normal (Windows) görev çubuğu simgesinin görüntülenip görüntülenmeyeceğini kullanıcının seçmesi için bir seçenek eklemek istiyorum.Bir Java Swing programı için görev çubuğu simgesinin dinamik olarak etkinleştirilmesi veya devre dışı bırakılması

Google'da bir arama, JFrame yerine JDialog kullanabileceğimi söyledi. Maalesef bu benim durumumda iyi bir çözüm değil çünkü kullanıcının kararına dayanarak görev çubuğu simgesini dinamik olarak etkinleştirmek veya devre dışı bırakmak istiyorum.

Bu bir şekilde mümkün mü?

Teşekkür ve tür, Matthias

cevap

0

Denenecek bir şey olsa da, bunun işe yarayacağından tam olarak emin olmadığım halde burada geç kalıyor ve bu konuda yanlış düşünebiliyor olabilirim.

Bir pencereyi simge durumuna küçültürseniz, bir olay tetiklenir, ne yapmak istediğinizi, WINDOW_ICONIFIED ve WINDOW_DEICONIFIED için izlenen JFrame'e bir WindowStateListener ekleyerek onu yakalamaktır. WINDOW_ICONIFIED oluştuğunda, JFrame'in görünür özelliğini false olarak ayarlayın; WINDOW_DEICONIFIED değeri true olarak ayarlandığında. Bir kare görünürlüğünün yanlış görünmesi için görev çubuğunu görev çubuğundan kaldırdığı görülüyor, yapmanız gereken tek şey gerçekten çalışıp çalışmadığını ve ardından bir devlet işleci oluşturup oluşturmadığını anlamaktır.

İşte

import java.awt.*; 

public class FrameTest 
{ 
    public static void main (String args[]) throws Exception 
    { 
     // Create a test frame 
     Frame frame = new Frame("Hello"); 
     frame.add (new Label("Minimize demo")); 
     frame.pack(); 

     // Show the frame 
     frame.setVisible (true); 

     // Sleep for 5 seconds, then minimize 
     Thread.sleep (5000); 
     frame.setState (Frame.ICONIFIED); 
     frame.setVisible(false); 
     // Sleep for 5 seconds, then restore 
     Thread.sleep (5000); 
     frame.setState (Frame.NORMAL); 
     frame.setVisible(true); 

     // Sleep for 5 seconds, then kill window 
     Thread.sleep (5000); 
     frame.setVisible (false); 
     frame.dispose(); 

     // Terminate test 
     System.exit(0); 
    } 
} 
+0

Buradaki sorun sınamak için kullanılan kod edilir olduğunu JFrame penceresi görev çubuğu simgesi, hala orada değil mi minimize ise bu durumda? Ama pencerenin simge durumuna küçültüldüğü anda görev çubuğundan tüm simgeyi (giriş) kaldırmayı istiyorum. – Matthias

+0

Sadece bunu oturmuş eski bir programla denedim ve işe yaradı. Jfram görünürlük özelliğini yanlış olarak ayarladım. frame.setVisible (yanlış); ve artık görev çubuğunda görünmedi. Bunu en aza indirgemek için, bir devlet değişimini dinlemeniz gerekecek, o zaman farklı (o benim 1.4 öncesi) dedim ama bu kadar kolay görünüyor. Pencereyi geri yüklediğinizde, sadeceVisible (true) ayarını yaparsınız ve tekrar gitmekte fayda vardır. – phill

+0

tamam o zaman, ben bir deneyin, teşekkürler! – Matthias

2

Bir JDialog veya JFrame sadece bir kaptır. Aralarında geçiş yapmak durumunuz için işe yaramaz mı? Değiştirmeniz gerektiğinde, aynı konum ve boyuta ayarlanmış diğer türden yeni bir örnek oluşturun ve contentPane öğesini taşıyın.

İlgili konular