Java 如何单独调整JPanel的大小?

Java 如何单独调整JPanel的大小?,java,swing,user-interface,Java,Swing,User Interface,我正在尝试设计一个简单的gui界面。框架由一个主面板组成,主面板包含另外四个面板“员工详细信息”、“工作详细信息”、“照片”和按钮。结果如下: 我对所有面板使用了gridLayout,除了“按钮面板”有边框布局 现在我想降低底部两个面板的高度,这样就不会有额外的空间。我该怎么做 下面是“照片”面板和“按钮”面板的代码。这两个面板现在都具有流布局 photoPanel.setPreferredSize(new Dimension(300,70)); photoPa

我正在尝试设计一个简单的gui界面。框架由一个主面板组成,主面板包含另外四个面板“员工详细信息”、“工作详细信息”、“照片”和按钮。结果如下:

我对所有面板使用了gridLayout,除了“按钮面板”有边框布局

现在我想降低底部两个面板的高度,这样就不会有额外的空间。我该怎么做

下面是“照片”面板和“按钮”面板的代码。这两个面板现在都具有流布局

        photoPanel.setPreferredSize(new Dimension(300,70));
        photoPanel.add(browsebx);
        photoPanel.add(browseBtn);


        btnPanel.setPreferredSize(new Dimension(300,70));
        btnPanel.add(addBtn);
        btnPanel.add(editBtn);
        btnPanel.add(deleteBtn);
        btnPanel.add(cancelBtn);
你可以用这个

jPanel.setPreferredSize(new Dimension(x, y));

jPanel.setMaximumSize(new Dimension(x, y));  
jPanel.setMinimumSize(new Dimension(x, y));

您的主面板使用的是
网格布局
,这意味着所有四个面板的大小将完全相同。不要使用网格布局

相反,您可以使用
GridBagLayout
。这允许您将每个面板添加到特定网格中,但每个面板将保持其首选大小,具体大小由每个面板上使用的布局管理器确定

有关更多信息和示例,请阅读上Swing教程的部分


请记住,如果需要,4个子面板中的每个都可以使用不同的布局管理器。例如,您可能希望对按钮面板使用
流程布局

我必须全部使用这三个吗?不,只使用第一个。如果它不能解决问题,就全部使用。它不起作用。。。我尝试设置PreferredSize,然后将这三个设置在一起。在添加到jframe之前,您是否先设置了jpanel的大小?是的……我添加了“照片面板”和“按钮面板”的代码。为什么您停止发布SSCCE/MCVET代码?代码太长了……我也不想只提供代码的一部分,因为它不可编译。好吧,投票以太宽的范围结束我只是认为如果我不发布代码,对其他有同样问题的人会更有帮助,因为很难阅读长代码SCE/MCVE最多约150行代码很多…为了简单起见,我使用了网格布局,但它产生了额外的空间