Java垂直布局?

Posted

技术标签:

【中文标题】Java垂直布局?【英文标题】:Java Vertical Layout? 【发布时间】:2012-02-15 13:52:01 【问题描述】:

我需要在一些 JButton 上垂直放置一个 JLabel,就像游戏菜单一样。它们都应该居中。我已经下载了 MigLayout,但我不确定如何使用它,所以我只想要一种方法来垂直和居中放置我的组件,MigLayout 与否。另外,我不想使用 IDE GUI 设计器。

【问题讨论】:

“我不想使用 IDE GUI 设计器” +1 :) 这样的设计器可以提高已经了解的开发人员的生产力布局以及如何组合它们。在您精通核心 J2SE 布局(+ 可能是第 3 方布局或 3)之前,在与 GUI 设计师对抗的同时尝试设计 GUI 并没有多大帮助。 问题是,我已经手动编写了所有的 GUI 东西(除了这个),我不想修改它会带来很大的好处。 【参考方案1】:

您可以为此使用(单列)GridLayoutBoxLayout。有关更多提示、想法和工作来源,请参阅 Using Layout Managers 和 A Visual Guide to Layout Managers。

【讨论】:

@Jeffrey 这可能是因为我在编辑添加链接之前发布了回复。 ;) BoxLayout 适用于按钮,但不适用于 JLabel...我的 JLabel 仍然与左侧对齐。 问题是JLabel一直延伸到整个框架(通过绘制边框来确定)。 没关系,我是通过设置 JLabel 最大大小来解决的。谢谢你的回答。【参考方案2】:

您应该使用BoxLayout。这里是一个基本的例子

import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class VerticalPanel extends JPanel 

    public VerticalPanel() 
        super();
        setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));

        for (int i = 0; i < 10; i++) 
            add(new JLabel("Label n°" + i));
        
    


【讨论】:

以上是关于Java垂直布局?的主要内容,如果未能解决你的问题,请参考以下文章

Java Swing:具有固定宽度和可变高度的垂直布局

JAVA可折叠垂直布局

Java Swing:如何更改 Grid 布局中一行的大小并允许它仅水平而不是垂直地动态调整大小?

android 水平布局中怎么设置个垂直布局的控件

如何在垂直线性布局中垂直居中视图?

关于flex布局垂直居中