2010-10-08 3 views
1

Я уже давно работаю над Java-программой Swing, сегодня я редактировал JComboBox (используя Netbeans, поэтому я не могу напрямую редактировать код для него), на некоторых точка между изменениями, возникшие ниже, возникли с трудом. Очевидно, что на данный момент слишком много кода для публикации, но есть ли у кого-нибудь какие-либо идеи/опыт того, что могло вызвать это?Ошибки с Java Swing - Неизвестные изменения

Я не вносил прямых изменений в исходный код, так как до начала этой ошибки, но, несмотря на все усилия по отмене всех сделанных сегодня изменений, это не повлияло на эти ошибки. Я даже попытался закрыть netbeans и перезапустить его на случай, что он просто играл.

Кроме того, что такое $ 1 в конце приложения, указывающее? Я не видел этого ранее

Спасибо за любые предложения.

08-Oct-2010 14:07:07 org.jdesktop.application.Application $ 1 прогон

SEVERE: Application class nodeview.NodeViewApp failed to launch 
java.lang.NullPointerException 
     at nodeview.NodeViewView.<init>(NodeViewView.java:49) 
     at nodeview.NodeViewApp.startup(NodeViewApp.java:19) 
     at org.jdesktop.application.Application$1.run(Application.java:171) 
     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) 
     at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) 
     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
     at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 
Exception in thread "AWT-EventQueue-0" java.lang.Error: Application class nodeview.NodeViewApp failed to launch 
     at org.jdesktop.application.Application$1.run(Application.java:177) 
     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) 
     at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) 
     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
     at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 
Caused by: java.lang.NullPointerException 
     at nodeview.NodeViewView.<init>(NodeViewView.java:49) 
     at nodeview.NodeViewApp.startup(NodeViewApp.java:19) 
     at org.jdesktop.application.Application$1.run(Application.java:171) 
     ... 8 more 

В соответствии с просьбой, код от линии 37 до 50 из NodeViewView

messageTimer.setRepeats(false); 
    int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate"); 
    for (int i = 0; i < busyIcons.length; i++) { 
     busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]"); 
    } 
    busyIconTimer = new Timer(busyAnimationRate, new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      busyIconIndex = (busyIconIndex + 1) % busyIcons.length; 
      statusAnimationLabel.setIcon(busyIcons[busyIconIndex]); 
     } 
    }); 
    idleIcon = resourceMap.getIcon("StatusBar.idleIcon"); 
    statusAnimationLabel.setIcon(idleIcon); //49 
    progressBar.setVisible(false); //50 
+1

Вы должны действительно изучить кодирование качели вручную в будущем. Я знаю, что я не на тему, но просто подумайте об этом;) – Scott

+0

Вы можете редактировать источник своих приложений Swing. Когда вы открываете класс для редактирования и просматриваете красивую картинку, панель прямо над ней имеет кнопку «источник» и «дизайн». – Sean

+0

после того, как вы найдете свой источник, опубликуйте NodeViewView (пару релевантных строк на 49 и около 49 будет хорошо) – Sean

ответ

0

NodeViewView.java:49 где вы найдете ошибку. Наиболее похоже на объект, который не был инициализирован правильно, и вы пытаетесь получить доступ к переменной метода или члена этого объекта.

+0

Спасибо за все ответы. Используя это, я обнаружил, где idleIcon был инициализирован, все это выглядело нормально, когда я понял, что не было никакого вызова, чтобы фактически инициализировать любой из кода swing (весь код, созданный Netbeans), и это было связано с тем, что я явно случайно удалил один из них линия; initComponents(); Школьная ошибка, но, по крайней мере, я ее нашел! благодаря – Draineh

0

Вам действительно нужно посмотреть код для NodeViewView и NodeViewApp, чтобы понять это. Пожалуйста, разместите соответствующие разделы из этих классов.

Редактировать: statusAnimationLabel null, не так ли. Обратите внимание, что передача нулевого значения в setIcon(Icon icon) не приведет к выбросу NPE.