【问题标题】:Using GridBagLayout to arrange components of a JPanel vertically使用 GridBagLayout 垂直排列 JPanel 的组件
【发布时间】:2014-12-10 05:18:38
【问题描述】:

我正在制作一个程序。是否可以垂直排列 JPanel 的组件?

这是一个标签。我希望在文本字段顶部显示一个标签,而无需为其创建另一个 JPanel。另外,我正在使用GridBagLayoutCardLayout 来安排和切换我的JPanels

【问题讨论】:

  • 答案是肯定的...
  • 您可能也可以为此使用 BoxLayout。参考文献Box.createVerticalBox().
  • GridBagConstraints。添加具有约束的组件,在约束上增加gridy,然后添加具有相同约束的下一个。查看How to use GridBagLayout 了解如何使用布局
  • 您也可以使用 SwingLabs SwingX 项目中的 VerticalLayout,但这取决于您的要求
  • @AndrewThompson “想知道是否有可能” ...我假设 ...

标签: java swing layout-manager gridbaglayout


【解决方案1】:

您可以简单地将GridBagConstraints#gridwidth 设置为GridBagConstraints.REMAINDER...

setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.anchor = GridBagConstraints.WEST;
add(new JLabel("Happy as can be"), gbc);
add(new JTextField(10), gbc);
add(new JLabel("Happy place"), gbc);
// etc..

查看How to Use GridBagLayout了解更多详情

【讨论】:

    【解决方案2】:

    设置 GridBagLayout 的选项:Columns Weight [1]; Rows Height [30, 40, 50, 1] 为每行指定您想要的高度值,最后一行将 1 放入使用 Rows Weight 并设置其 Rows Weight [0, 0, 0, 1] 然后将组件的锚点设置为西北, 填充:水平或两者兼有;最后设置组件 X, Y 将组件放入网格包中

    【讨论】:

    • 我需要看到,相信它(会工作)。有代码和屏幕截图吗?
    • 好吧,我觉得我很擅长GridBagLayout,但你的回答让我很困惑......
    • 见这里pastebin.com/BgPBTsG1 在一个类中运行扩展 jpanel 或将你的 jpanel 名称添加到 setBorder、setLayout、添加(对于屏幕截图运行它嘿嘿)
    猜你喜欢
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多