首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将面板放进大面板中

将面板放进大面板中
EN

Stack Overflow用户
提问于 2022-01-08 08:16:16
回答 1查看 44关注 0票数 0

我想要创建一个框架与一个大面板的流量布局,其中包含几个较小的面板与给定的大小。我想我可以这样做:( JFrame给出了)

代码语言:javascript
复制
private void testLayout() {
    JPanel panel = new JPanel();
    panel.setBackground(Color.gray);
    add(panel);

    JPanel panel1 = new JPanel();
    panel1.setSize(300, 200);
    panel1.setBackground(Color.red);
    panel.add(panel1);
}

如果我运行这个,我只会得到我的大面板灰色,我只看到一个小的红色广场在我的顶部中间的框架,虽然我把大小设置为300 to和200 to。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-08 09:33:15

组件的显示大小由布局管理器决定。一些布局管理器使用方法getSize返回的值,但不使用代码中使用的任何值。

正如您正确地指出的,JPanel的默认布局管理器是FlowLayoutFlowLayout实际上使用方法getPreferredSize返回的值。因此,与其调用方法setSize,不如调用setPreferredSize。下面的代码演示了。(代码之后有更多解释。)

代码语言:javascript
复制
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class PanelTst implements Runnable {
    private JFrame  frame;

    @Override
    public void run() {
        createAndDisplayGui();
    }

    private void createAndDisplayGui() {
        frame = new JFrame("Panels");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel();
        panel.setBackground(Color.gray);
        JPanel panel1 = new JPanel();
        panel1.setPreferredSize(new Dimension(300, 200));
        panel1.setBackground(Color.red);
        panel.add(panel1);
        frame.add(panel);
        frame.setSize(450, 300);
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new PanelTst());
    }
}

内容窗格的默认布局管理器是BorderLayout。在问题中的代码中,实际上是将panel添加到BorderLayout的中心,这意味着它将占用所有可用的空间。

由于您没有为panel设置任何大小,因此它的大小将由其父级的大小决定。因此,在上面的代码中,我显式地设置了JFrame的大小。否则,您只会看到panel1。(我建议你修改上面的代码,自己看看。将frame.setSize(450, 300);替换为frame.pack();)

这就是当我运行上面的代码时的样子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70630664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档