gpt4 book ai didi

java - GridLayout 中的按钮未完全加载

转载 作者:行者123 更新时间:2023-12-01 21:37:27 24 4
gpt4 key购买 nike

我正在尝试制作一个 17 x 17 的 GridLayout 板,但是当我运行代码时,我生成的板被搞乱了,看起来像这样,而不是 17 x 17 的按钮板:

enter image description here

所以我的问题是为什么板显示像这样奇怪,我如何让它显示我想要的 17 x 17 按钮板?

这是我正在使用的代码:

public class TheJFrame {
public static final char[][] board = new char[17][17];
public static class TheJFramez {
JFrame boardz = new JFrame("Game of Life");
JPanel panel = new JPanel();
public TheJFramez(){
int r = 0,c;
boardz.setLayout(new GridLayout(board.length,board[r].length,1,1));
for(r=0;r<board.length;r++){
for(c = 0;c<board[r].length;c++){
JButton tats = new JButton(" " + board[r][c] + " ");
panel.add(tats);

}
}
boardz.add(panel);
boardz.setVisible(true);
boardz.setSize(1200, 700);
boardz.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
public static void main(String[] args) {
new TheJFramez();
}
}

最佳答案

在此代码中,当您将按钮添加到“面板”时,您已将“boardz”的布局设置为 GridLayout,但未指定布局,因此,当您将面板添加到“boardz”时,它采用默认布局,面板将以网格布局排列,而“面板”的组件仍将采用默认布局。

所以,您想将 JButton 添加到 boardz 并且没有使用面板。

这是正确的代码:-

import java.awt.*;
import javax.swing.*;
public class TheJFrame {
public static final char[][] board = new char[17][17];
public static class TheJFramez {
JFrame boardz = new JFrame("Game of Life");
JPanel panel = new JPanel();
public TheJFramez(){
int r = 0,c;
boardz.setLayout(new GridLayout(board.length,board[r].length));
for(r=0;r<17;r++){
for(c = 0;c<17;c++){
JButton tats = new JButton(" " + board[r][c] + " ");
boardz.add(tats);
System.out.print(board[r][c]);
}
System.out.println();
}

boardz.setVisible(true);
boardz.setSize(1200, 700);
boardz.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
public static void main(String[] args) {
new TheJFramez();
}
}

enter image description here

关于java - GridLayout 中的按钮未完全加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36820508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com