2013-12-15 5 views
-1

Я добавил тему вещества к моему приложению swing и попытался запустить ее, и она работает. но я продолжаю получать это исключение во время его запуска. может кто-нибудь сказать мне, как это исправить?Исключение при попытке применить и запустить тему вещества в netbeans

Исключение ............................................. ........................................

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
    at org.jvnet.substance.SubstanceTableUI$TableStateListener$2.run(SubstanceTableUI.java:1951) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) 
    at java.awt.EventQueue.access$200(EventQueue.java:103) 
    at java.awt.EventQueue$3.run(EventQueue.java:694) 
    at java.awt.EventQueue$3.run(EventQueue.java:692) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:703) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 

Код .. .................................................. ...................................

try { 
     LookAndFeel look = new SubstanceDefaultLookAndFeel(); 
     UIManager.setLookAndFeel(look); 
     SubstanceDefaultLookAndFeel.setCurrentTheme(new SubstanceBottleGreenTheme()); 
     SubstanceDefaultLookAndFeel.setCurrentWatermark(new SubstanceNoneWatermark()); 
     SubstanceDefaultLookAndFeel.setCurrentGradientPainter(new SimplisticSoftBorderReverseGradientPainter()); 
     new Login().setVisible(true); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

ответ

1

Убедитесь, что вы явно создаете свои GUI в потоке отправки событий. Я столкнулся с этой проблемой с некоторыми Look and Feels, когда я этого не делал. Вы можете сделать это очередями автоматически запускаемые код на EDT через

SwingUtilities.invokeLater(new Runnable() { 
    public void run() { 
    // start your GUI here 
    } 
}); 

т.е.

SwingUtilities.invokeLater(new Runnable() { 
    public void run() { 
    try { 
     LookAndFeel look = new SubstanceDefaultLookAndFeel(); 
     UIManager.setLookAndFeel(look); 
     SubstanceDefaultLookAndFeel.setCurrentTheme(new SubstanceBottleGreenTheme()); 
     SubstanceDefaultLookAndFeel.setCurrentWatermark(new SubstanceNoneWatermark()); 
     SubstanceDefaultLookAndFeel.setCurrentGradientPainter(
      new SimplisticSoftBorderReverseGradientPainter()); 
     new Login().setVisible(true); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    } 
} 

Edit, mKorbel прав - внешний вид изменения должны быть на EDT. Код изменился, чтобы отразить это. Извините за неправильную информацию.

+0

Hovercraft Full Eels: не так ли? java.awt.EventQueue.invokeLater (новый Runnable() { общественных недействительный запуска() { попробовать { – user3093753

+0

@ user3093753: Спасибо, вы правильно – user3093753

+0

Так что вы можете дать мне пример о том, как исправить эту – user3093753