【发布时间】:2017-06-10 00:11:17
【问题描述】:
我想知道是否可以在GridBagLayout 中设置JButton 组件的大小,我希望我的按钮“开始”和“退出”相互之间,我想让它们更大,大小无关紧要,我想知道一般程序。
我尝试了在 Internet 上找到的不同方法(使用其他布局),但结果却出现了更多错误。
public class Display implements Runnable
{
public Display()
{
}
@Override
public void run() {
JFrame frame = new JFrame();
frame.setTitle("Title");
frame.setPreferredSize(new Dimension(500,700));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
createComponents(frame.getContentPane());
frame.pack();
frame.setVisible(true);
}
private void createComponents(Container cont)
{
GridBagLayout pane = new GridBagLayout();
JButton button1 = new JButton("Start");
JButton button2 = new JButton("Quit");
button1.setSize(new Dimension(200,200));
button1.setAlignmentX(Component.CENTER_ALIGNMENT);
button2.setAlignmentX(Component.CENTER_ALIGNMENT);
cont.setLayout(pane);
cont.add(button1);
cont.add(button2);
}
public static void main(String[] args)
{
Display d = new Display();
SwingUtilities.invokeLater(d);
}
}
【问题讨论】:
-
如果您希望所有组件都具有相同的大小,请使用 GridLayout。请记住,您可以嵌套 JPanel,每个 JPanel 都使用自己的布局管理器。
-
GridBagConstraints#fill? -
这是一个只有两个按钮的大框架。需要更多的组件吗?以最小尺寸提供(整个)GUI 的预期布局的 ASCII 艺术或简单绘图,如果可调整大小,则具有更大的宽度和高度。
button1.setSize(new Dimension(200,200));布局管理器更可能尊重首选尺寸而不是尺寸,但也不要设置它,因为首选尺寸不会比猜测更好。 -
你可能还想看看How to use GridBagLayout,第一个例子看起来就像它在做你想做的事
标签: java swing layout-manager