Настройка темы для Металла LookAndFeel

В настоящее время мое заявление работает на окружающей среде Windows, и согласно новому требованию нам нужен порт на Linux.

Но мое заявление использует стиль Windows, который только поддерживается на платформе окон, и я упоминал ниже исключение, когда я управляю им на Linux.

Я сталкиваюсь с проблемами как составляющее несоответствие размера и цвета кнопки, когда я запланировал продолжить Стиль GTK.

Тогда я пошел Металлический стиль со своей собственной темой, но все еще применение бросает то же самое исключение.

MetalLookAndFeel.setCurrentTheme(MyTheme());
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");

public class MyTheme extends DefaultMetalTheme {

    public String getName() {
        return "MyTheme";
    }
    ColorUIResource primary1 = new ColorUIResource(0, 78, 115);
    ColorUIResource primary2 = new ColorUIResource(102, 193, 122);
    ColorUIResource primary3 = new ColorUIResource(153, 244, 173);
    ColorUIResource secondary1 = new ColorUIResource(196, 172, 134);
    ColorUIResource secondary2 = new ColorUIResource(209, 192, 163);
    ColorUIResource secondary3 = new ColorUIResource(223, 211, 190);
    private final FontUIResource controlFont = new FontUIResource("Dialog", 0, 11);

    protected ColorUIResource getPrimary1() {
        return primary1;
    }

    protected ColorUIResource getPrimary2() {
        return primary2;
    }

    protected ColorUIResource getPrimary3() {
        return primary3;
    }

    protected ColorUIResource getSecondary1() {
        return secondary1;
    }

    protected ColorUIResource getSecondary2() {
        return secondary2;
    }

    protected ColorUIResource getSecondary3() {
        return secondary3;
    }

    public FontUIResource getControlTextFont() {
        return controlFont;
    }
}


INFO   | jvm 1    | main    | 2013/01/21 15:14:23.995 | Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.995 |     at javax.swing.plaf.basic.BasicButtonUI.getMinimumSize(BasicButtonUI.java:352)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.995 |     at javax.swing.JComponent.getMinimumSize(JComponent.java:1714)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.995 |     at java.awt.BorderLayout.minimumLayoutSize(BorderLayout.java:651)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.995 |     at java.awt.Container.minimumSize(Container.java:1651)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.995 |     at java.awt.Container.getMinimumSize(Container.java:1636)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at javax.swing.JComponent.getMinimumSize(JComponent.java:1716)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.FlowLayout.minimumLayoutSize(FlowLayout.java:448)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.Container.minimumSize(Container.java:1651)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.Container.getMinimumSize(Container.java:1636)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at javax.swing.JComponent.getMinimumSize(JComponent.java:1716)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.GridBagLayout.GetLayoutInfo(GridBagLayout.java:1094)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.GridBagLayout.getLayoutInfo(GridBagLayout.java:893)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.GridBagLayout.ArrangeGrid(GridBagLayout.java:2052)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.GridBagLayout.arrangeGrid(GridBagLayout.java:2008)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.GridBagLayout.layoutContainer(GridBagLayout.java:789)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.Container.layout(Container.java:1421)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.Container.doLayout(Container.java:1410)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.Container.validateTree(Container.java:1507)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.Container.validateTree(Container.java:1513)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.Container.validateTree(Container.java:1513)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.Container.validateTree(Container.java:1513)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.Container.validateTree(Container.java:1513)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.Container.validate(Container.java:1480)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:669)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:124)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.EventQueue.access$000(EventQueue.java:85)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.EventQueue$1.run(EventQueue.java:603)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.EventQueue$1.run(EventQueue.java:601)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.security.AccessController.doPrivileged(Native Method)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.EventQueue.dispatchEvent(EventQueue.java:612)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
INFO   | jvm 1    | main    | 2013/01/21 15:14:23.996 |     at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
3
nl ja de
Можно ли поставлять пример кода, который может воспроизвести эту ошибку?
добавлено автор MadProgrammer, источник
Проблема, некоторые как you' ve произвел основные классы API в некотором роде, которые я сомневаюсь, что мы могли копировать самостоятельно. Необходимо поставлять работоспособный пример, который демонстрирует проблему, таким образом, мы можем вырыть вокруг и видеть то, что мы можем найти. Учитывая, что люди управляют Явой на Linux все время, мы можем предложенный это it' s likly, чтобы быть изолированной проблемой
добавлено автор MadProgrammer, источник
добавлено автор trashgod, источник
It' s огромное применение, которое содержит больше чем 1000 явских классов. можно ли просто дать предложение как то, как преодолеть стиль на платформе Linux?
добавлено автор user1280096, источник
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async