Java выглядит и чувствуется во время выполнения - PullRequest
1 голос
/ 21 января 2012

У меня есть базовый графический интерфейс (простой Jframe с кнопкой), и я изменил внешний вид, используя Nimrod. Новый l & f - это темная тема, которую я меняю во время выполнения.

Однако, когда графический интерфейс запускается, на очень короткий момент графический интерфейс имеет яркий фон, а затем применяется новый темный 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 Ответ

5 голосов
/ 21 января 2012
...