使用网格布局添加按钮

2024-01-12

我正在尝试创建一个由 9x9 JButtons 制作的简单的井字游戏板。 我使用了二维数组和网格布局,但结果是什么都没有,一个没有任何按钮的框架。 我做错了什么?

import java.awt.GridLayout;
import javax.swing.*;


public class Main extends JFrame
{
    private JPanel panel;
    private JButton[][]buttons;
    private final int SIZE = 9;
    private GridLayout experimentLayout;
    public Main()
    {
        super("Tic Tac Toe");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500,500);
        setResizable(false);
        setLocationRelativeTo(null);

        experimentLayout =  new GridLayout(SIZE,SIZE);

        panel = new JPanel();
        panel.setLayout(experimentLayout);


        buttons = new JButton[SIZE][SIZE];
        addButtons();


        add(panel);
        setVisible(true);
    }
    public void addButtons()
    {
        for(int k=0;k<SIZE;k++)
            for(int j=0;j<SIZE;j++)
            {
                buttons[k][j] = new JButton(k+1+", "+(j+1));
                experimentLayout.addLayoutComponent("testName", buttons[k][j]);
            }

    }


    public static void main(String[] args) 
    {
        new Main();

    }

}

addButton 方法将按钮添加到数组中,然后直接添加到面板中。


您需要将按钮添加到您的JPanel:

public void addButtons(JPanel panel) {
   for (int k = 0; k < SIZE; k++) {
      for (int j = 0; j < SIZE; j++) {
         buttons[k][j] = new JButton(k + 1 + ", " + (j + 1));
         panel.add(buttons[k][j]);
      }
   }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用网格布局添加按钮 的相关文章

随机推荐

  • java.lang.NoSuchMethodError:com.google.common.base.CharMatcher.ascii()

    我在 glassfish 服务器上收到此错误 java lang NoSuchMethodError com google common base CharMatcher ascii Lcom google common base Char
  • 将表达式的结果分配给原语

    K Sierra 在她的书 SCJP 学习指南 中提到 我们知道文字整数始终是 int 但更重要的是 涉及任何 int 大小或更小的表达式的结果始终是 int 我已经开始尝试 我对以下结果有点困惑 byte a 1 correct byte
  • Flexbox高度百分比[重复]

    这个问题在这里已经有答案了 我有一个基本的弹性盒布局 我正在尝试应用高度百分比 目前它们都占据相同的百分比 html body height 100 margin 0 padding 0 text align center row one
  • 鼠标悬停时更改图像大小

    我目前正在尝试做到这一点 以便如果我将鼠标悬停在li 图像改变其大小 我设法从网站上提取了一个代码 如果我将鼠标悬停在img如下所示 div class profiles ul li class portraitsLeft align le
  • Android 中的 YouTube 播放器崩溃并给出 java.lang.IllegalStateException: android.os.DeadObjectException

    我正在做一个项目 我在用YouTubeAndroidPlayerAPI and Webview在我的活动中 当我尝试使用其 id 运行视频时 它会运行 问题是 但如果视频 id 为空 那么我不会按照代码中的说明运行或初始化视频 然后它会给出
  • NSDocument 保存一个完整的文件夹?

    如果这个论点已经被涵盖 我很抱歉 但经过一些研究 我发现没有任何精确的内容 我需要制作一个基于文档的应用程序 其中文档实际上不是单个文件 而是目录中的结构化文件集合 窗口将显示文件夹中包含的带有特定文件名的 pdf 并使用文件夹中其他文件的
  • 如何获取Spring Filter中的路径变量?

    我正在开发一个安全过滤器 需要根据路径变量的值进行一些检查 我试图这样做 final Map
  • C++动态分配静态维度数组的数组

    我需要创建一个包含可变数量的 char 2 的结构 即 2 个字符的静态数组 我的问题是 如何为 x 个 char 2 分配内存 我尝试了这个 假设定义了 int x char m NULL m new char x 2 delete m
  • 如何减小生成的二进制文件的大小?

    我知道有一个选项 Os 可以 优化大小 但它影响不大 甚至在某些情况下会增加大小 strip 或 s 选项 删除调试符号表 效果很好 但它只能减少一小部分尺寸 还有其他办法可以走得更远吗 除了显而易见的 Os s 将函数对齐到不会崩溃的最小
  • 什么与此正则表达式匹配:qr/(?!)/;

    在一个源代码中我发现了这个正则表达式 qr 我根本不知道这匹配什么 说实话 完全不明白什么意思零宽度负前瞻断言 我在 perlre 发现了什么 有人可以用人类语言解释一下吗 空正则表达式模式匹配零长度字符串 也就是说它始终匹配 这是一个明显
  • 这种设计模式在 JavaScript 中被称为什么?

    我正在查看 js 源代码拼字游戏 http Scrabb ly 我注意到他们会为每个不同的 类 做类似的事情 var Board function var self settings for board self options debug
  • 改变进度条颜色 win 32

    我正在尝试通过以下方式更改 win 32 进度条中的背景和条的颜色 HWND hwndPB CreateWindowEx 0 PROGRESS CLASS NULL WS CHILD WS VISIBLE PBS SMOOTHREVERSE
  • 如何在numpy中获得一定范围内的正态分布? [复制]

    这个问题在这里已经有答案了 在机器学习任务中 我们应该得到一组有界的随机正态分布 我们可以得到一个正态分布数np random normal 但它不提供任何绑定参数 我想知道该怎么做 The 参数化truncnorm很复杂 所以这里有一个函
  • 调用 finish() 后活动布局闪烁

    当我打开应用程序时 会启动一个 Activity 并在其 onCreate 方法中检查一些条件 如果条件为真 我将完成当前的活动并打开另一个活动 问题是 第一个活动在屏幕上闪烁 然后打开第二个活动 代码如下 public class Fir
  • 有没有办法使用带有前缀的 @GenerateValue 创建字符串序列?

    我想创建一个带有前缀 CID 00001 的序列 示例 Id GeneratedValue strategy GenerationType SEQUENCE private String id 有什么办法可以做到这一点吗 您可以使用自定义
  • 我应该如何对 ASP.NET 网站项目进行版本控制?

    我有一个 ASP NET 网站项目 我想显示版本号和发布日期 但我不确定如何最好地确定这些 例如 以下代码仅输出0 0 0 0 LabelVersion Text Assembly GetExecutingAssembly GetName
  • 通过 id() 获取对象? [复制]

    这个问题在这里已经有答案了 假设我有一个 Python 对象的 id 我通过执行以下操作检索了它id thing 我如何找到thing再次通过我得到的身份证号码 如果该对象仍然存在 可以通过以下方式完成ctypes https docs p
  • 来自经理和员工 ID 的 python 层次结构

    我有一个包含两列的 csv 员工 ID eid 和经理的员工 ID mid 尝试获取 python 代码 为每个员工添加显示从经理一直到 CEO 的员工 ID 的列 CEO 的员工 ID 为 1 最终我想将结果写回 csv 所以数据看起来像
  • 一种动态分配多维数组的方法

    salute 我正在书中学习多维数组的动态分配 我找到了一些方法 现在没有问题了 但是书的作者给我们展示了一种方法 但是效果并不正确 它是这个 pbeans new double 3 4 Allocate memory for a 3x4
  • 使用网格布局添加按钮

    我正在尝试创建一个由 9x9 JButtons 制作的简单的井字游戏板 我使用了二维数组和网格布局 但结果是什么都没有 一个没有任何按钮的框架 我做错了什么 import java awt GridLayout import javax s