gpt4 book ai didi

Java 在网格布局中获取错误数量的 jbutton

转载 作者:行者123 更新时间:2023-12-02 04:47:26 25 4
gpt4 key购买 nike

所以我是 Java 新手,而且对于 Swing 绝对是新手。

我有一个 80 X 80 的数组,将用于迷宫。我需要我的 GUI 有 80 X 80 个按钮,这样它们就可以与我的数组中的值相关联。

我不明白为什么我只从这段代码中得到五六个大按钮。如果有人能告诉我如何让它发挥作用,那么提前谢谢你,因为我很困惑。

只要运行它,你就会明白我的意思...而且我想我还没有弄清楚如何更改按钮的颜色,而是更改了背景颜色。

这是我的代码:

public static void draw() {

JFrame f = new JFrame();
f.setTitle("Maze");
f.setSize(800, 800);
f.setVisible(true);
f.setDefaultCloseOperation(EXIT_ON_CLOSE);

JPanel c = (JPanel)f.getContentPane();
GridLayout gridLayout = new GridLayout();
c.setLayout(gridLayout);
for(int i =0;i<80;i++){
for(int j =0;j<80;j++){
JButton b = new JButton();
c.add(b, i,j);
b.setSize(10, 10);
b.setOpaque(true);
b.setBackground(Color.red);
}
}


}

}

最佳答案

  1. 80 * 10 > f.setSize(800, 800); 并且您的代码无法适应全高清显示器

  2. 使用 f.pack() 代替 f.setSize(800, 800);
  • f.pack()f.setVisible(true); (可能是一个主要问题)应该是 non_static 中的最后代码行并重命名为!public void DrawMe() {!,因为 draw() 是 Java API 的保留字

  • c.add(b, i,j); 也应该是最后一个代码行(逻辑顺序),

  • c.add(b, i,j); 设置 GridLayout 的行和列,而不是将 JButton 注入(inject)到 GridLayout 中的虚拟网格

  • <小时/>
    • 让我明白一些(从元素的数量开始)

    enter image description here

    来自

    import java.awt.GridLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;

    public class DrawMe {

    private JFrame frame = new JFrame();
    private JPanel c = new JPanel();
    private static final int column = 10;
    private static final int row = 10;

    public DrawMe() {
    c.setLayout(new GridLayout(row, column));
    for (int i = 0; i < column; i++) {
    for (int j = 0; j < row; j++) {
    JButton b = new JButton((i + 1) + " " + (j + 1));
    c.add(b);
    }
    }
    frame.add(c);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setLocation(150, 150);
    frame.setVisible(true);
    }

    public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
    @Override
    public void run() {
    new DrawMe();
    }
    });
    }
    }

    关于Java 在网格布局中获取错误数量的 jbutton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29549852/

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