今日は少し問題があります。コードを実行しようとすると、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();
}
ここに投稿するのはちょっとやり過ぎなので、GUIJuego フレームのペーストビンを残しておきます: http://pastebin.com/LSXbc7KE。必要な場合に備えて、他のフレームのペーストビンも用意してください: http: //pastebin.com/hbdd7j84
編集:これがスタックトレースです。以前は不足していて申し訳ありません!
スレッド「AWT-EventQueue-0」での例外 java.lang.NullPointerException at java.awt.Container.addImpl(Unknown Source) at java.awt.Container.add(Unknown Source) at gui.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.DefaultButtonModel.fireActionPerformed で (不明なソース) javax.swing.DefaultButtonModel.setPressed で(不明なソース) javax.swing.plaf.basic で.BasicButtonListener.mouseReleased(不明なソース) java.awt.Component.processMouseEvent(不明なソース) で javax.swing.JComponent.processMouseEvent(不明なソース) java.awt.Component.processEvent(不明なソース) で java.awt.Container.processEvent(不明なソース) java.awt.Component.dispatchEventImpl(不明なソース) で java.awt.Container. java.awt.LightweightDispatcher.retargetMouseEvent(不明なソース) の java.awt.Component.dispatchEvent(不明なソース) での dispatchEventImpl(不明なソース) java.awt.LightweightDispatcher.processMouseEvent(不明なソース) での java.awt.LightweightDispatcher.dispatchEvent(ソース不明) java.awt.Container.dispatchEventImpl(ソース不明) java.awt.Window.dispatchEventImpl(ソース不明) java.awt.Component.dispatchEvent(ソース不明) java.awt.EventQueue.dispatchEventImpl(ソース不明) ) java.awt.EventQueue.access$200 で (ソース不明) java.awt.EventQueue$3 で。java.awt.EventQueue$3 で実行 (不明なソース)。 java.security.AccessController.doPrivileged (ネイティブ メソッド) で実行 (不明なソース) java.security.ProtectionDomain$1 で実行。 java.awt.EventQueue$4 の .doIntersectionPrivilege(未知のソース) java.awt.EventQueue$4.run の (未知のソース) java.security.AccessController.doPrivileged(ネイティブ メソッド) の java.security.ProtectionDomain で$1.doIntersectionPrivilege(不明なソース) java.awt.EventQueue.dispatchEvent(不明なソース) で java.awt.EventDispatchThread.pumpOneEventForFilters(不明なソース) java.awt.EventDispatchThread.pumpEventsForFilter(不明なソース) で java.awt.EventDispatchThread. java.awt の pumpEventsForHierarchy(不明なソース)。java.awt.EventDispatchThread.pumpEvents(不明なソース) の EventDispatchThread.pumpEvents(不明なソース) java.awt.EventDispatchThread.run(不明なソース)
ところで、読んでくれてありがとう!