下面是代码:为什么setPreferredSize不会改变按钮的大小?
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class TestGrid {
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 panel = new JPanel();
panel.setLayout(new GridLayout(4, 9));
panel.setMaximumSize(new Dimension(9*30-20,4*30));
JButton btn;
for (int i=1; i<=4; i++) {
for (int j=1; j<=4; j++) {
btn = new JButton();
btn.setPreferredSize(new Dimension(30, 30));
panel.add(btn);
}
btn = new JButton();
btn.setPreferredSize(new Dimension(30, 10));
panel.add(btn);
for (int j=1; j<=4; j++) {
btn = new JButton();
btn.setPreferredSize(new Dimension(30, 30));
panel.add(btn);
}
}
mainPanel.add(panel);
frame.add(mainPanel);
frame.setSize(450,950);
frame.setVisible(true);
}
}
我想有按钮的表4行9列。中间栏应该比其他栏更窄。我试过Dimension(30, 10)
和Dimension(30, 10)
都没有影响中间列的宽度。为什么?
阅读教程。您已经多次提供了Swing教程的链接。这在“如何使用网格布局”教程中有明确的说明。用这些问题退出论坛,直到你做了一些基本的阅读。现在是最近几天与布局经理有关的7个问题。令我难以置信的是,人们继续回答这些问题,特别是当你不接受答案时。 – camickr 2010-03-30 16:09:42
@camickr,没有人强迫你回答我的问题。有些人有问题,有些人已经准备好回答这个问题。这些人可以找到共同的语言和合作的方式。如果你不明白它为什么起作用,那就不要参与其中。别打扰别人。 – Roman 2010-04-01 13:40:50
我了解它的工作方式。你做了一些研究,当你遇到问题时,你会发问询问。我们不在这里为你做阅读。如果您付出努力,我们将努力。 – camickr 2010-04-01 15:07:04