-1

我正在尝试创建一个按钮数组并将它们添加到 aGridLayout中,但由于某种原因,如果我将网格设置为大于大约 5 x 5,则网格不会正确绘制。如果它在大约 7 x 7 和 10 x 10 之间,网格不完整。如果高于此值,则按钮非常宽,并显示在垂直列中而不是网格中,并且它延伸到屏幕的顶部和底部。

我的代码:

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class GUI extends JFrame implements ActionListener {

    JButton[] btns = new JButton[49];

    GUI(String title){
        super(title);
        this.init();
        this.setSize(500, 500);
        this.setVisible(true);
        this.setLocationRelativeTo(null);
    }

    void init() {
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(7, 7));
        for (int btnadder = 0; btnadder < 49; btnadder++) {
            btns[btnadder] = new JButton("");
            panel.add(btns[btnadder]);
            btns[btnadder].setBackground(Color.white);
        }
    this.add(panel);
    }
}
4

2 回答 2

1

为什么不为JFrame不扩展内部组件的布局管理器设置一个布局管理器?

除此之外,我不明白这个问题。你想要什么?7x7 排列的 49 个按钮?

另外,我注意到您没有使用this.pack()before this.setVisible(true);,并且您没有设置按钮的大小或设置它们的标签。至少尝试类似的东西new JButton(""+btnadder);

我做了这些更正,现在我的显示器上有一个不错的 JFrame。同样,我不确定您的期望。

于 2013-08-29T22:32:32.380 回答
1

当它设置在 7 和 10 之间时,你在改变吗

for (int btnadder = 0; btnadder < 25; btnadder++)

考虑更多的按钮?

于 2013-08-29T22:33:18.417 回答