2012-04-13 12 views
0

Ich habe einen JFrame mit einem Bild als Hintergrund, genannt setUndcorated und setWindowOpaque Methode. Wenn ich JFrame öffne und den Computer dann schlafen lasse, aber wenn der Computer aus dem Ruhezustand aufwacht, wird der JFrame weiß.Bildbasierte Jframe werden weiß, wenn sie aus dem Energiesparmodus oder Standbymodus aufwachen

Ich denke, es vielleicht Problem neu streichen, aber ich kann dieses Problem nicht lösen, würden Sie mir bitte einige Vorschläge?

+3

* "geben Sie mir einige Vorschläge?" * Post ein [SSCCE] (http://sscce.org/). –

Antwort

1

Sie können einfach versuchen, die Komponente, die das Bild enthält, neu zu streichen, wenn Ihr Fenster (JFrame) den Fokus erhält. Das sollte das Problem der Neulackierung nach dem "Aufwachen" beheben, denke ich.

Sie können auch versuchen, diese:

frame.addWindowListener (new WindowAdapter() 
{ 
    public void windowActivated (WindowEvent e) 
    { 
     // Here repaint what you need 
    } 
}); 
+0

Ich füge Fokus Listener auf dem JFrame, aber es funktioniert nicht – chenhai

+0

Überprüfen Sie zunächst, ob das Fokus-Gain-Ereignis ausgelöst wird oder nicht. Wenn es geworfen wird - Neuanstrich hilft nicht und Sie müssen die Rahmen-Deckkraft wieder auf "falsch" setzen oder den Rahmen neu erstellen (aufgrund eines Fehlers vielleicht). Wenn nicht - versuchen Sie den Fenster-Listener, den ich in die Antwort unten hinzugefügt habe, könnte es funktionieren. –