Java Simple有关使用JPanels的问题

时间:2010-03-07 06:02:20

标签: java user-interface jpanel

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

每次我创建一个新的JPanel时,我都要做一些操作,我想知道我这样做的顺序是否有任何影响,或者是否有标准做法。

我所做的操作如下:

声明JPanel:JPanel面板= new JPanel(...)

声明JLabel:JLabel laberl = new JLabel ......

将JPanel添加到其他内容窗格:frame.getContentPane()。add(panel)

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

将JLabel添加到JPanel:panel.add(label)

3 个答案:

答案 0 :(得分:3)

一般而言,只要您将所有组件添加到面板中,并且在将框架显示为“之前”将面板添加到内容窗格中,一般顺序并不重要。

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

答案 1 :(得分:3)

订单无关紧要。但是,在创建并add所有内容之后,您需要在面板上调用revalidate()(或在其父窗口上调用pack())以便布局管理器(我假设您正在使用一个) !)按原样安排组件。

答案 2 :(得分:2)

使用方法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;
}

构建和添加项目的顺序并不重要,只是当您添加子项时,您应该按照面板中所需的顺序add这些项目。