2015-10-05 1 views
0

У меня есть проект 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?

+0

Является ли баннер Look and Feel в классе? Вы заботитесь о том, чтобы настроить внешний вид и запустить графический интерфейс в потоке событий Swing? –

+0

Вы инициализируете его из контекста EDT? – MadProgrammer

+0

Прекрасно работает для меня, возможно, вам стоит рассмотреть возможность выполнения [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это не дамп кода, а пример того, что вы делаете, что подчеркивает проблему, с которой вы сталкиваетесь. Это приведет к меньшему путанице и лучшим ответам – MadProgrammer

ответ

1

(а) Проверьте ваш Java, есть известная ошибка https://bugs.openjdk.java.net/browse/JDK-8043705

(б) Проверьте вашу библиотеку: создать новый привет мир, как приложение с jtattoo l'n'f - просто JFrame + JLabel

(c) Попробуйте найти разницу между мировым приложением hello и вашим реальным приложением.

Смежные вопросы