调整jpanel的大小



我有一个将内容窗格设置为jpanel的jframe,它具有boxlayout,还有两个jpanels,一个是"顶级栏",另一个是我想工作的内容和。顶级条应占用我给它的大小,并且内容面板应占用其余的,但是它们都占据了一半的空间。我在做什么错?

我的课:

public class TopBar extends JPanel
{
    public TopBar()
    {
        setLayout(new FlowLayout());
        setPreferredSize(new Dimension((int) (MyFrame.WIDTH / MyFrame.COMPRESSION), MyFrame.TOPBAR));
        add(new JButton("something"));
    }
}

public class ContentPanel extends JPanel
{   
    public ContentPanel()
    {
        setLayout(null);
    }
}
public class MyJpanel extends JPanel
{
    private JPanel topPanel;
    private JPanel contentPanel;
    public MyJpanel()
    {
        this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
        topPanel = new TopBar();
        contentPanel = new ContentPanel();
        add(topPanel);
        add(contentPanel);
    }
}

,但他们都占据了一半的空间

BoxLayout将为每个组件分配额外的空间,直至最大尺寸。

顶级栏应精确地占据我给它的大小,内容面板应占用其余的,

然后不要使用boxlayout。JFrame的内容窗格的默认布局管理器是BorderLayout,它正是您想要的。

阅读有关如何使用BorderLayout以获取更多信息和工作示例的Swing教程中的部分。

您应该使用 setSize 而不是 setPreferredsize

我的错误是我没有设置两个面板的首选尺寸,如果我设置了contentpane的大小,则它将工作。

相关内容

  • 没有找到相关文章

最新更新