当前位置: 首页 > 知识库问答 >
问题:

在BoxLayout中调整JPanel的大小

姬念
2023-03-14

我的类:

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);
    }
}

共有1个答案

璩涛
2023-03-14

但它们都占据了一半的空间

BoxLayout将为每个组件分配额外的空间,以达到组件的最大大小。

顶部栏应该占用我给出的大小,内容面板应该占用其余的大小,

 类似资料:
  • 问题内容: 我是Java的新手,开始学习挥杆技巧,并且在JFrame中调整JPanel的大小时遇到​​问题。我正在关注本教程: http://vincentramdhanie.blogspot.com/2009/11/cardlayout-with- netbeans.html 因为最终我将学习每种不同的布局,并且现在已经进入CardLayout。在上面,有一个JPanel用于状态面板。那也是我想

  • 我是Java新手,开始学习swing,在JFrame中调整JPanel的大小时遇到问题。我将学习本教程: http://vincentramdhanie.blogspot.com/2009/11/cardlayout-with-netbeans.html 因为最终我正在学习每一种不同的布局,现在我来到了CardLayout。在上面,有一个JPanel用于状态面板。这也是我想要做的,但是当我将一个J

  • 我有一个针对不同元素的JPanels集合:JPanelShowPane、seasonsPane、episodesPane、airingsPane 所有这些元素的setLayout设置为null,大小固定为304x416。我将这些JPanel添加到一个大小为1280x416的名为showViewPanel的JPanel中,并设置了一个BoxLayout,如下所示(下面是JFrame中的代码): 我搞

  • 问题内容: 我有一个子类,可以在其上添加按钮,标签,表格等。要在屏幕上显示,请使用: 但是,当我调整窗口大小时,面板的大小不会改变。即使调整了尺寸,如何使面板的尺寸与窗口的尺寸相同? 问题答案: 您可以设置一个类似于BorderLayout的布局管理器,然后更具体地定义面板应该放置的位置: 这会将面板置于框架的中央区域,并在调整框架大小时自动增长。

  • 框架设计采用NetBeans进行。我尝试了所有的解决方案,比如将布局从BorderLayout更改为GridBagLayout,甚至是这里提到的那个。

  • 起初,我只有文本栏和状态栏,如下例所示(我不需要父容器): 这是应该的。但是,请记住状态栏的高度。现在,如果您将StatusBar类更改为下面的类,那么高度几乎会增加一倍。为什么会这样? 这种设置并不需要更多的垂直空间: 我可以让这成为一个新问题,但我觉得不值得...