我将我的按钮放置在拥有GridLayout的JPane中,然后将JPanel放置到另一个拥有BoxLayout.Y_AXIS的JPanel中。我想让GridLayout中的按钮是正方形的。我使用了tmp.setSize(30,30),但它没有起作用。我还尝试使用
new GridLayout(X,Y,4,4)
,但我无法弄清X和Y是多少。那么,正确的做法是什么?
添加:
我仍然无法解决这个问题。这里是我正在尝试做的代码:import javax.swing.*;
import java.awt.*;
public class PanelModel {
public static void main(String[] args) {
JFrame frame = new JFrame("Colored Trails");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
JPanel firstPanel = new JPanel();
firstPanel.setLayout(new GridLayout(4, 4));
JButton btn;
for (int i=1; i<=4; i++) {
for (int j=1; j<=4; j++) {
btn = new JButton();
btn.setPreferredSize(new Dimension(100, 100));
firstPanel.add(btn);
}
}
JPanel secondPanel = new JPanel();
secondPanel.setLayout(new GridLayout(5, 13));
for (int i=1; i<=5; i++) {
for (int j=1; j<=13; j++) {
btn = new JButton();
btn.setPreferredSize(new Dimension(40, 40));
secondPanel.add(btn);
}
}
mainPanel.add(firstPanel);
mainPanel.add(secondPanel);
frame.add(mainPanel);
frame.setSize(400,600);
frame.setVisible(true);
}
}
问题是Java试图让firstPanel
和secondPanel
的宽度相等!此外,Java试图填充窗口的所有高度。我如何消除这种行为?
new Dimension(40, 40)
,而不是实例化16个? - jub0bs