java - 将一组文本按钮添加到网格布局

标签 java swing nullpointerexception jbutton grid-layout

我不确定我到底做错了什么,我想创建一个网格布局 使用 Jbutton 数组,但是它给了我一个“空指针异常”。不能 似乎找到了如何将 JButtons 放置在面板上的确切方法。

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();
}   
}

最佳答案

在哪里为面板变量创建 JPanel 对象?

回答:你不知道。所以改变这个:

private JPanel panel;

为此:

private JPanel panel = new JPanel();

更重要的是,您需要了解如何调试 NPE(NullPointerException)的一般概念。您应该仔细检查抛出它的那一行,找出哪个变量为空,然后回溯到您的代码中以查看原因。你会一次又一次地遇到这些,相信我。


顺便说一句:不要给您的类起与重要的核心 Java 类相同的名称。例如,通过将您的类命名为 GridLayout,如果不完全指定类名,您现在将无法使用 java.awt.GridLayout 类。因此,您需要将类名更改为其他名称,比如 MyGridLayout

关于java - 将一组文本按钮添加到网格布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22572523/

相关文章:

java - 原子操作与 STM

Android 应用程序在某些设备上强制关闭,但在其他设备上不会

android - 获取SD卡上应用程序的图标

java - JSON Paring - 如何显示二级 ListView

java - 没有继承的类的构造函数中的 super()

java - Glassfish MySQL Hibernate 无法构建 Hibernate SessionFactory

java - 创建 GUI 为什么拖放比编写代码更糟糕?

java - 有没有办法用 JList 获取垂直索引?

Java:旋转图像使其指向鼠标光标

在 servlet 中加载 XML 文件时,Java Properties 类抛出 NPE?