Java在运行时的外观

use*_*014 1 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)
        {

        }       

    }   
Run Code Online (Sandbox Code Playgroud)

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

任何帮助都非常感谢.