Как правильно оформить JInternalFrame Titlebar от Insubstantial - PullRequest
1 голос
/ 09 ноября 2011

У меня проблема со стилем JInternalFrames в Insubstantial 7.0. Я работаю с Eclipse и WindowBuilder для Swing. В предварительном просмотре Widowbuilder JInternalFrames, перенесенные на рабочую панель, имеют красивую блестящую заголовок (используя GraphiteGlassSkin). Но когда я запускаю программу, заголовок и клиентское пространство всех JInternalFrames просто рисуются одним и тем же серым цветом без каких-либо различий.

Как я могу сделать так, чтобы эти заголовки были блестящими во время выполнения?

С уважением,

David

1 Ответ

1 голос
/ 09 ноября 2011

во время выполнения вы можете изменить LookAndFeel

1), после чего вам придется вызывать SwingUtilities.updateComponentTreeUI( Контейнер верхнего уровня );

2) если есть какой-то Backgroung Task, вы должны заключить код в invokeAndWait(), если нет / нет Backgroung Task, то с успехом используйте invokeLater()

SwingUtilities.invokeLater(new Runnable() {

    @Override
    public void run() {
        try {
            UIManager.setLookAndFeel(new GraphiteGlassSkinLookAndFeel());
            SwingUtilities.updateComponentTreeUI(frame);
        } catch (UnsupportedLookAndFeelException e) {
            throw new RuntimeException(e);
        }
    }
});
...