2013-11-11 3 views
0

сегодня у меня немного немного, видите, я пытаюсь запустить свой код, и я получаю исключение NullPointerException. Улики в исключении приводит меня к этой функции прямо здесь:NullPointerException при открытии нового фрейма

private void irGuiJuego(JFrame frame){ 
    SwingConsole.run(new GUIJuego(), 800, 600, true); 
    frame.dispose(); 
} 

Где SwingConsole бы этот код:

package utiles; 

import javax.swing.JFrame; 
import javax.swing.SwingUtilities; 

public class SwingConsole { 

    public static void run(final JFrame frame, final int width, final int height, final boolean exitOnClose) { 

     SwingUtilities.invokeLater(new Runnable() { 

      @Override 
      public void run() { 

       if (exitOnClose) 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

       frame.setSize(width, height); 
       //frame.setResizable(false); 
       frame.setVisible(true); 

      } 
     }); 
    } 

    public static void run(final JFrame frame, final int width, final int height, final boolean exitOnClose, final String title) { 

     SwingUtilities.invokeLater(new Runnable() { 

      @Override 
      public void run() { 

       if (exitOnClose) 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

       frame.setTitle(title); 
       frame.setSize(width, height); 
       frame.setVisible(true); 

      } 
     }); 
    } 


} 

Это своего рода странно, учитывая, что я использую тот же метод для открыть еще один кадр, в этой функции, чтобы быть конкретным:

private void volverMenuInicio(JFrame frame){ 
    SwingConsole.run(new MenuInicio(), 300, 150, true); 
    frame.dispose(); 
} 

Я оставлю вас, ребята с Pastebin из рамы GUIJuego, так как это своего рода чрезмерными, чтобы разместить его здесь: http://pastebin.com/LSXbc7KE , иметь пастебин другой рамы тоже, если вам это нужно: http://pastebin.com/hbdd7j84

Редактировать: Вот стоп-кадр, извините за отсутствие этого раньше!

Исключение в потоке "АВТ-EventQueue-0" java.lang.NullPointerException в java.awt.Container.addImpl (Unknown Source) в java.awt.Container.add (Unknown Source) в гуй .GUIJuego. (GUIJuego.java:113) при gui.MenuNuevoJuego.irGuiJuego (MenuNuevoJuego.java:95) при gui.MenuNuevoJuego.access $ 2 (MenuNuevoJuego.java:94) при gui.MenuNuevoJuego $ 2.actionPerformed (MenuNuevoJuego. java: 74) на javax.swing.AbstractButton.fireActionPerformed (Неизвестный источник) на javax.swing.AbstractButton $ Handler.actionPerformed (Неизвестный источник) на javax.swing.DefaultBut tonModel.fireActionPerformed (Unknown Source) на javax.swing.DefaultButtonModel.setPressed (Unknown Source) в javax.swing.plaf.basic.BasicButtonListener.mouseReleased (Неизвестный источник) в java.awt.Component.processMouseEvent (Unknown Source) в javax.swing.JComponent.processMouseEvent (Unknown Source) в java.awt.Component.processEvent (Unknown Source) в java.awt.Container.processEvent (Unknown Source) в java.awt.Component.dispatchEventImpl (Unknown Источник) на java.awt.Container.dispatchEventImpl (Unknown Source) в java.awt.Component.dispatchEvent (Unknown Source) в java.awt.LightweightDispatcher.retargetMouseEvent (Unknown Source) в java.awt. LightweightDispatcher.processMouseEvent (Unknown Source) на java.awt.LightweightDispatcher.dispatchEvent (Unknown Source) в java.awt.Container.dispatchEventImpl (Unknown Source) в java.awt.Window.dispatchEventImpl (Unknown Source) в Явы. awt.Component.dispatchEvent (Неизвестный источник) в java.awt.EventQueue.dispatchEventImpl (Неизвестный источник) в java.awt.EventQueue.access $ 200 (Неизвестный источник) в java.awt.EventQueue $ 3.run (Неизвестный источник) в java.awt.EventQueue $ 3.run (Unknown Source) в java.security.AccessController.doPrivileged (метод Native) при java.security.ProtectionDomain $ 1.doIntersectionPrivilege (Неизвестный источник) в java.security.ProtectionDomain $ 1.doIntersectionPrivilege (Неизвестно Источник) на java.awt.EventQueue $ 4.run (Неизвестный источник) на java.awt.EventQueue $ 4.run (Неизвестный источник) на java.security.AccessController.doPrivileged (Нативный метод) в java.security.ProtectionDomain $ 1.doIntersectionPrivilege (НеизвестноИсточник) на java.awt.EventQueue.dispatchEvent (Unknown Source) на java.awt.EventDispatchThread.pumpOneEventForFilters (Unknown Source) в java.awt.EventDispatchThread.pumpEventsForFilter (Unknown Source) в java.awt.EventDispatchThread.pumpEventsForHierarchy (Unknown Source) в Java. awt.EventDispatchThread.pumpEvents (Unknown Source) на java.awt.EventDispatchThread.pumpEvents (Unknown Source) на java.awt.EventDispatchThread.run (Unknown Source)

Спасибо за чтение, кстати!

+1

Просьба предоставить трассировку стека, это ключевая часть данных для исследования NPE. – dimo414

+2

Какова трассировка стека исключения? В нем точно указано, где происходит исключение. Без этой информации мы можем только догадываться или превращаться в человеческую JVM. –

+2

Должно быть, закон природы. Если это тег 'Java', а заголовок содержит' NullPointerException', вы можете поспорить, что в теле не будет stacktrace. Вероятно, потому что, как только вы на самом деле посмотрели на stacktrace, решение, как правило, довольно просто ... – nhgrif

ответ

1

NPE выбрасывают из линии 113 в GUIJuego.java, как трассировки стека указывает:

panelDatosCiudad.add(arcaLabel); 

Это происходит потому, что arcaLabel, определенной в строке 35, никогда не устанавливается на значение, и поэтому вам 'добавление нулевой JLabel в контейнер.

+0

Это верно, спасибо, а также JB Nizet! – krieg

+0

На самом деле, просматривая комментарии, кажется, что JB Nizet сделал большую часть подсказки для информации, которая привела к моему ответу. Если JB хочет опубликовать в форме ответа, я был бы рад вывести мою и согласиться с вами. –

+0

Это очень благородно с вами, есть ли у него способ связаться с ним и сказать ему, что если он захочет опубликовать свой ответ, я бы принял его сразу же? – krieg

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