Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有Swing的简单两列布局_Java_Swing_Layout - Fatal编程技术网

Java 带有Swing的简单两列布局

Java 带有Swing的简单两列布局,java,swing,layout,Java,Swing,Layout,如何使用Swing获得固定的侧边栏JPanel。现在我试着这样做: public SidebarPanel() { this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS)); this.setPreferredSize(new Dimension(200, this.getPreferredSize().height)); ... 但是当我调整窗口大小时,边栏的宽度也会改变。如何解决这个问题?你必须依靠好的老

如何使用Swing获得固定的侧边栏JPanel。现在我试着这样做:

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

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

你必须依靠好的老办法。一个好的助手类是,它允许您轻松地定位元素。

在Swing中,不能保证遵循首选大小。这取决于容器的布局管理器

如果容器使用BorderLayout,则可以使用以下方法添加侧边栏面板:

container.add(sidebarPanel, BorderLayout.EAST)

这将尊重首选宽度。

您可以使用BorderLayout,添加到JPanel

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

你把这个面板放在哪里?什么样的布局?