关于使用JPanels的Java简单问题

关于使用JPanels的Java简单问题,java,user-interface,jpanel,Java,User Interface,Jpanel,这里有个简单的问题。我有一个程序,我需要在其中创建一些JPanel,然后每个JPanel将包含一些对象(通常是JLabel) 每次创建一个新的JPanel时,我都必须执行一些操作,我想知道我执行这些操作的顺序是否有任何关系,或者是否有一个标准实践 我所做的操作如下: 声明JPanel:JPanel panel=newjpanel(…) 声明JLabel:JLabel laberl=新的JLabel 将JPanel添加到其他内容窗格:frame.getContentPane().Add(面板) 设

这里有个简单的问题。我有一个程序,我需要在其中创建一些JPanel,然后每个JPanel将包含一些对象(通常是JLabel)

每次创建一个新的JPanel时,我都必须执行一些操作,我想知道我执行这些操作的顺序是否有任何关系,或者是否有一个标准实践

我所做的操作如下:

声明JPanel:JPanel panel=newjpanel(…)

声明JLabel:JLabel laberl=新的JLabel

将JPanel添加到其他内容窗格:frame.getContentPane().Add(面板)

设置JPanel:panel.setBounds(…)的边界


将JLabel添加到JPanel:panel中。只要将所有组件添加到面板中,并在“之前”将面板添加到内容窗格中,使框架可见,则按一般顺序添加(标签)

并不重要

标准做法是使用布局管理器,因此无需设置添加到内容窗格的面板的边界。

使用方法createPanel()返回添加了所有子面板的面板

Panel p = createPanel();
p.setBounds(...); // if you must
frame.getContentPane().add(p);
然后

Panel createPanel() {
  Panel p = new Panel();
  Label l = new Label("Heading");
  p.add(l);
  return p;
}

构建和添加项的顺序并不重要,除了当您添加子项时,您应该按照您希望它们在面板中的顺序添加它们。

顺序无关紧要。但是,在创建和添加所有内容之后,您需要在面板上调用
revalidate()
(或在其父窗口上调用
pack()
),以便布局管理器(我猜您正在使用它!)按应有的方式排列组件