Изменить фон JFrame в интерфейсе Sea-Glass Look and Feel

Каков правильный способ изменить фон JFrame с помощью Sea-Glass Look and Feel, до сих пор я пробовал оба:

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

и

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

Но это не дало никакого эффекта:

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();
                }
            }
        });
    }    

}


person TU_HEO DAKAI    schedule 26.03.2012    source источник
comment
Загрузите L&F через UIManager перед любым кодом в вашем основном методе. Например: stackoverflow.com/ вопросов/9541045/ После этого делайте все, что хотите, т.е. меняйте фон   -  person ee.    schedule 26.03.2012
comment
Некоторым L&F может потребоваться, чтобы вы изменили несколько свойств пользовательского интерфейса, вызвав setProperty() или что-то в этом роде. Возможно, вам придется заглянуть в его документ. Есть также L&F с глючной реализацией, которая не позволяет вам измениться на то, что вы хотите! Если это произойдет, вам может потребоваться переопределить его paintComponent(), чтобы использовать его поведение рисования компонента пользовательского интерфейса по умолчанию и применить новое поведение рисования компонента.   -  person ee.    schedule 26.03.2012


Ответы (1)


Seaglass Look and Feel основан на Nimbus, поэтому вы должны принять его встроенные темы или установить Цвета для Nimbus программно

person mKorbel    schedule 26.03.2012