繁体   English   中英

使用GridLayout-如何设置JPanel大小?

[英]Using GridLayout - how to set JPanel size?

在此输入图像描述 我正在使用GridLayout并且我所有的面板都具有相同的大小,如何更改它们的大小?

我尝试了所有使getPreferred / Minimum / MaximumSize起作用的函数,什么也没做。 我仍然想呆在GridLayout上,有什么建议吗?

就其本质而言,GridLayout持有的所有组件都具有相同的大小。 如果你想要它们的大小不同,

  1. 您可以使用不同的布局,例如GridBagLayout或MigLayout或
  2. 使用GridLayout来保存相同大小的JPanel,它们充当其他组件的容器。 内部组件当然可以是不同的尺寸。 例如:一个国际象棋棋盘,它将棋盘单元格保存在GridLayout中,但允许每个单元格保存一个具有不同大小的棋子。

如果这不能回答您的问题,请澄清您的问题。

所以我设法将上面的所有部分拆分到我位于NORTH的第一个JPanel。
然后,JPanel与按钮我做同样位于南。
因此滚动的JLabel现在位于CENTER中,这使他能够灵活变通。

    JPanel mainPanel1 = new JPanel(new GridLayout(6,1));
    mainPanel1.add(titleLabel);
    mainPanel1.add(participantPanel);
    mainPanel1.add(swimPanel);
    mainPanel1.add(ridePanel);
    mainPanel1.add(runPanel);
    mainPanel1.add(categoriesPanel);

    JPanel mainPanel2 = new JPanel(new GridLayout(1,1));        
    mainPanel2.add(listPanel);

    JPanel mainPanel3 = new JPanel(new GridLayout(1,1));
    mainPanel3.add(buttonsPanel);

    this.getContentPane().add(mainPanel1, BorderLayout.NORTH);
    this.getContentPane().add(mainPanel2, BorderLayout.CENTER);
    this.getContentPane().add(mainPanel3, BorderLayout.SOUTH);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM