一个简单的两列布局与Swing

时间:2010-04-06 13:39:14

标签: java swing layout

如何使用Swing获取固定的侧边栏JPanel。现在我正在尝试这个:

public SidebarPanel() {
    this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));   
    this.setPreferredSize(new Dimension(200, this.getPreferredSize().height));
    ...

但是当我调整窗口大小时,侧边栏的宽度也会发生变化。如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

Swing无法保证首选尺寸得到尊重。这取决于容器的布局管理器。

如果容器使用BorderLayout,您可以使用以下方法添加SidebarPanel:

container.add(sidebarPanel, BorderLayout.EAST)

这将尊重首选宽度。

答案 1 :(得分:1)

你必须依靠好老GridBagLayout。一个好的帮助类是GBC,它可以让你轻松定位元素。

答案 2 :(得分:0)

您可以使用BorderLayout,添加到JPanel

    mainContent.setLayout(new BorderLayout());
    mainContent.add(pnlHeader, BorderLayout.WEST);
    mainContent.add(pnlResultList, BorderLayout.EAST);