首页 > 解决方案 > 如何使流布局垂直居中

问题描述

我正在尝试将“Flowlayout”-ed JPanel 垂直居中在另一个面板内。这是我想要实现的目标:

 -----------------
|                 |   
|  one two three  |
|  four five six  |
|  seven eight    |
|  nine           |
|                 |
 -----------------

 ----------------------- 
|                       |   
|  one two three four   |
|  five six seven eight |
|  nine                 |
|                       |
 -----------------------

内容应该在包含面板的范围内流动、增长和收缩,并且垂直居中。

不幸的是,我能掌握的只是一个顶部对齐的面板,它看起来像:

 ----------------------- 
|  one two three four   |
|  five six seven eight |
|  nine                 |
|                       |    
|                       |
 -----------------------
public class ListFlowCell extends JPanel
{

    public ListFlowCell(List<String> list)
    {
            
        setLayout(new FlowLayout(FlowLayout.LEADING));  
        list.forEach(s -> add(new JLabel(s)));
    
    }

}

有没有办法使用 MigLayout 实现所需的行为?

标签: javaswing

解决方案


我正在尝试将“Flowlayout”-ed JPanel 垂直居中在另一个面板中

包装面板可以使用GridBagLayout.

默认情况下,添加到面板的任何组件都将垂直和水平居中。因此,当您添加面板时,您还需要设置weightx约束,FlowLayout这将允许面板水平增长。


推荐阅读