У меня есть проект java, который работает с maven. Я добавил JTattoo зависимостей Maven и установить менеджер GUI для команды HiFi в главном классе:Java UI Manager look and feel (JTattoo) вызывает NULLpointer
try {
UIManager.setLookAndFeel("com.jtattoo.plaf.hifi.HiFiLookAndFeel");
} catch (InstantiationException ex) {
Logger.getLogger(MainClass.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(MainClass.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(MainClass.class.getName()).log(Level.SEVERE, null, ex);
}
Когда я запускаю мое приложение, Netbeans не показывает ошибку и все, кажется, работает хорошо. Но когда я запускаю мое приложение, большинство моих JLabels не отображаются, и я получаю исключение NullPointer и следующую трассировку стека (моя программа продолжает работать):
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2043)
at java.awt.Component.getLocationOnScreen(Component.java:2028)
at com.jtattoo.plaf.JTattooUtilities.getRelLocation(JTattooUtilities.java:192)
at com.jtattoo.plaf.hifi.HiFiUtils.fillComponent(HiFiUtils.java:42)
at com.jtattoo.plaf.hifi.HiFiRadioButtonUI.paintBackground(HiFiRadioButtonUI.java:84)
at com.jtattoo.plaf.BaseRadioButtonUI.paint(BaseRadioButtonUI.java:97)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
at javax.swing.JComponent.paintComponent(JComponent.java:780)
Кто-нибудь имеет представление о том, что может вызвать эту проблему? Если эта проблема не может быть исправлена, есть ли какие-либо подобные альтернативы для темы JTattoo HiFi/noir?
Является ли баннер Look and Feel в классе? Вы заботитесь о том, чтобы настроить внешний вид и запустить графический интерфейс в потоке событий Swing? –
Вы инициализируете его из контекста EDT? – MadProgrammer
Прекрасно работает для меня, возможно, вам стоит рассмотреть возможность выполнения [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это не дамп кода, а пример того, что вы делаете, что подчеркивает проблему, с которой вы сталкиваетесь. Это приведет к меньшему путанице и лучшим ответам – MadProgrammer