Java 为什么可以';我不能生成这个GUI吗?

Java 为什么可以';我不能生成这个GUI吗?,java,eclipse,button,frames,greenfoot,Java,Eclipse,Button,Frames,Greenfoot,所以我试图为一个球创建一个GUI,这个球由按钮控制,在迷宫中运行。但首先,我想创建一个带有几个方向按钮的框架,每当我尝试在eclipse中运行这个框架时,它都会出现一个不太具体的错误。我的代码如下。错误指向代码的“buttonTL、buttonTR、buttonBL和buttonBR”部分。 谢谢你能提供的任何帮助 错误是: 线程“main”java.lang.NullPointerException中出现异常 在mazeassignment.One.createGUI(One.java:55)

所以我试图为一个球创建一个GUI,这个球由按钮控制,在迷宫中运行。但首先,我想创建一个带有几个方向按钮的框架,每当我尝试在eclipse中运行这个框架时,它都会出现一个不太具体的错误。我的代码如下。错误指向代码的“buttonTL、buttonTR、buttonBL和buttonBR”部分。 谢谢你能提供的任何帮助

错误是:
线程“main”java.lang.NullPointerException中出现异常 在mazeassignment.One.createGUI(One.java:55) 在mazeassignment.One.main(One.java:23)

import java.awt.*;
导入java.awt.event.*;
导入javax.imageio.imageio;
导入javax.swing.*;
公共类1扩展JFrame实现ActionListener/,ChangeListener
{
私人JButton按钮右,按钮左,按钮上,按钮下,按钮上,按钮下,按钮下,按钮下,按钮下,按钮下,按钮下,按钮下,按钮下,按钮下,按钮下,按钮下,按钮下,按钮下,按钮下,按钮下,按钮下,按钮下;
专用JPanel面板中心、面板右侧、面板底部、按钮面板、指南针面板、选项面板、调试面板;
私人JSlider滑块速度;
私人JLabel-appSpeed;
私有JButton[]JBArray=新JButton[630];
私有整数膨胀=290;
公共位置=287;
私人图标bImage、iconBall、tile、iconWall、iconCompassNorth;
公共静态void main(字符串[]args)
{
一帧=新帧();
框架设置尺寸(875600);
frame.createGUI();
frame.setVisible(true);
}
私有void createGUI()
{   
setDefaultCloseOperation(关闭时退出);
容器窗口=getContentPane();
setLayout(新的BorderLayout());
panelCentre=新的JPanel();
面板中心。设置首选尺寸(新尺寸(625450));
镶板中心。立根背景(颜色。蓝色);
窗口。添加(面板中心);
panelCentre.setLayout(新网格布局(21,30));
panelRight=新的JPanel();
panelRight.setPreferredSize(新尺寸(200450));
面板右。背景(颜色。灰色);
添加(面板右,边框布局。东);
panelBottom=新的JPanel();
面板底部。设置首选尺寸(新尺寸(875100));
镶板底部。背景(颜色。绿色);
添加(panelBottom,BorderLayout.SOUTH);
debugPanel=newjpanel();
setPreferredSize(新维度(200100));
debugPanel.setBackground(颜色:白色);
panelRight.add(debugPanel);
buttonTL=新的JButton(“”);
buttonPanel.add(buttonTL);
按钮L.setEnabled(错误);
buttonUp=新的JButton(“^”);
buttonPanel.add(buttonUp);
buttonUp.addActionListener(此);
buttonTR=新的JButton(“”);
buttonPanel.add(buttonTR);
按钮ntr.setEnabled(false);
buttonLeft=新的JButton(“”);
按钮面板。添加(按钮右侧);
按钮右。addActionListener(此);
buttonBL=新的JButton(“”);
按钮面板。添加(按钮L);
按钮BL.setEnabled(错误);
按钮向下=新按钮(“v”);
buttonPanel.add(buttonDown);
addActionListener(这个);

对于(int i=0;i您忘记初始化buttonPanel。请在开始使用它之前添加以下内容:

buttonPanel= new JPanel();

然后它就可以正常工作。

知道错误是什么总是有帮助的…mazeassignment.One.createGUI(One.java:55)mazeassignment.One.main(One.java:23)的线程“main”java.lang.NullPointerException中的异常那么第55行是哪一行呢?你在那一行可以使用什么,可能是
null
?另外,看看你执行的操作。在那里你可以很容易地跳出数组边界,你不检查数组元素中的确切位置。如果它是数组中的第一行呢?你不能执行-1等等。这就是它。意识到我已经告诉了那些按钮去哪里,但那个地方还不存在,所以我必须创造它。谢谢!
buttonPanel= new JPanel();