Java在运行时的外观

时间:2012-01-21 14:56:00

标签: java swing runtime look-and-feel

我有一个基本的GUI(带按钮的普通Jframe),我使用Nimrod改变了外观。新的l& f是一个黑暗的主题,我在运行时更改。

然而,当GUI运行时,在非常短暂的时刻,GUI具有明亮的背景,然后应用新的暗l& f。

我认为造成这种短暂亮度闪现的原因是,在运行时,默认的l& f会在新应用之前暂时显示。

这只是一秒钟的一小部分,但它看起来不整齐而且非常烦人。

如果我在运行时使用按钮更改l& f,似乎不会发生。

那么,有没有其他人有这方面的经验?这有可能的解决方法吗?隐藏JFrame,直到应用新的l& f?

如果有帮助,这是我的代码:

    public static void main(String[] args) 
    {        
        setTheme();        

        NewJFrame njf = new NewJFrame();
        njf.setLocationRelativeTo(null);
        njf.setTitle("My First Swing Application");
        njf.pack();        
        njf.setVisible(true);                
    }

    static void setTheme()
    {
        NimRODTheme nt = new NimRODTheme();
        nt.setPrimary1( new Color(0,51,153));
        nt.setPrimary2( new Color(0,92,143));
        nt.setPrimary3( new Color(0,102,153));
        nt.setSecondary1( new Color(31,31,31));
        nt.setSecondary2( new Color(41,41,41));
        nt.setSecondary3( new Color(51,51,51));
        nt.setWhite( new Color(0,0,0));
        nt.setBlack( new Color(255,255,255));
        nt.setMenuOpacity(195);
        nt.setFrameOpacity(180);

        NimRODLookAndFeel NimRODLF = new NimRODLookAndFeel();
        NimRODLF.setCurrentTheme (nt);

        try
        {
            UIManager.setLookAndFeel(NimRODLF);       
        }
        catch(Exception e)
        {

        }       

    }   

此外,如果需要nimrod,您可以在此处获取:http://www.mediafire.com/?l9pytbooenmemgc

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:5)