2012-03-26 3 views
1

Was ist der richtige Weg ist, um Hintergrund von JFrame mit Sea-Glas zu ändern Look and Feel, so weit habe ich versucht, beide:ändern JFrame Hintergrund der in Sea-Glass Look and Feel

frame.getContentPane().setBackground(Color.blue); 

und

JPanel x = new JPanel(); 
x.setBackground(Color.red); 
frame.setContentPane(x); 

Aber es machte keine Wirkung:

import javax.swing.*; 
import com.seaglasslookandfeel.*; 
import java.awt.*; 
import java.awt.Color.*; 
public class BORDER_TEST { 
public static void main(String[] a){ 

     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       try { 

        UIManager.setLookAndFeel("com.seaglasslookandfeel.SeaGlassLookAndFeel"); 
        JFrame frame = new JFrame(); 
        JPanel x = new JPanel(); 
        x.setBackground(Color.red); 
        frame.setContentPane(x); 

        //frame.getContentPane().setBackground(Color.blue); 
        frame.setPreferredSize(new Dimension(900,350)); 
        frame.setAlwaysOnTop(true); 
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
        frame.pack(); 
        frame.setLocationRelativeTo(null); 
        frame.setVisible(true); 
        } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    }  

}

+0

Last L & F über UIManager vor jedem Code in Ihre Hauptmethode zu akzeptieren. Zum Beispiel: http://stackoverflow.com/questions/9541045/how-to-set-jframe-look-and-feel Danach tun Sie, was Sie wollen, dh ändern Sie den Hintergrund –

+0

Einige L & Fs müssen Sie möglicherweise ein paar UI ändern Eigenschaften durch Aufruf von setProperty() oder etwas. Möglicherweise müssen Sie in das Dokument schauen. Es gibt auch L & Fs mit einer "Buggy" -Implementierung, die es dir nicht erlaubt, zu etwas zu wechseln, das du willst! In diesem Fall müssen Sie möglicherweise die Eigenschaft paintComponent() überschreiben, um das Verhalten der Paint-Komponente für die Standard-UI-Komponente zu übernehmen und ein neues Verhalten für das Paint-Verhalten der Komponente anzuwenden. –

Antwort

Verwandte Themen