Java GUI:关于getContentPane( )方法和内容

2022-09-02 23:22:30

在这段代码中:

JLabel emptyLabel = new JLabel("");
emptyLabel.setPreferredSize(new Dimension(175, 100));
frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);

我可以看到它制作了一个新标签并将其添加到对象中 。但我想了解它有什么作用,为什么我需要它?JFrameframegetContentPane()

我读了这个API,但我仍然不明白。


答案 1

每个 Swing 顶级容器(和 JInternalFrame)都有所谓的 .这负责实际管理窗口的整体布局。JRootPane

enter image description here

根窗格具有多个图层,其中一个是内容窗格。当您向框架中添加某些内容时(我认为是从Java 5开始的),它会自动添加到内容窗格中,在此之前,您必须调用自己getContentPane().add(...)

看看如何使用根窗格


答案 2

每个都是一个容器,因此可以将其添加到面板,然后将其添加到容器中,也可以直接使用或使用该方法。两者都将组件添加到Java 7中的容器中(我不知道版本6是否有问题)。JPaneladd(component)getContentPane().add


推荐