我不确定我在这里做错了什么,我想创建一个网格布局 使用Jbutton数组,但它给了我一个“空指针异常”。不能 似乎找到了如何将JButton放在面板上。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class GridLayout extends JFrame
{
private final int HEIGHT = 200;
private JPanel panel;
private final int WIDTH = 200;
public GridLayout ()
{
setTitle( " try this");
setSize( HEIGHT, WIDTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
JButton [] but = new JButton [9];
for(int i = 0; i < 9; i++ )
{
but[i]=new JButton();
}
for ( int i = 0; i < 9;i++)
{
panel.add(but[i]);
}
setVisible(true);
}
public static void main(String[] arg)
{
new FlowWindow();
}
}
答案 0 :(得分:3)
在哪里为面板变量创建JPanel对象?
答案:你没有。所以改变这个:
private JPanel panel;
到此:
private JPanel panel = new JPanel();
更重要的是,您需要学习如何调试NPE(NullPointerException)的一般概念。您应仔细检查抛出它的行,找出哪个变量为null,然后追溯到您的代码以查看原因。你会一次又一次地碰到这些,相信我。
顺便说一句:不要给你的类提供与重要核心Java类相同的名称。例如,通过命名类GridLayout,您现在将无法使用java.awt.GridLayout类而无需完全指定类名。因此,您需要将您的班级名称更改为其他名称,例如MyGridLayout
。