2010-03-07 36 views
2

这里只是一个简短的问题。我有一个程序,我需要创建一些JPanel,然后每个包含一些对象(通常是JLabels)。关于使用JPanels的Java简单问题

每次我创建一个新的JPanel时,都需要做一些操作,而且我想知道我做的这些操作的顺序是否有任何方向,或者是否有标准操作。

我做的操作如下:

声明的JPanel:JPanel的面板=新JPanel(...)

声明的JLabel:JLabel的laberl =新的JLabel ...

JPanel中加入一些其他的内容窗格:frame.getContentPane()加(面板)

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

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

回答

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他们你希望他们在面板中的顺序。

3

通常,顺序并不重要,只要将所有组件添加到面板并将面板添加到“之前”制作的内容窗格中框架可见。

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

3

订单无关紧要。但是,在创建完所有东西之后,您需要在面板上调用revalidate()(或在其父窗口中调用pack()),以便布局管理器(我假定您正在使用它!)按照它们应该安排的组件排列。