在使用Swing中JFrame、JPanel及其他Composite组件时有两种方式。
1, 新建一个类并继承此类组件,然后在新的类中向其中添其他组件。
例如
Class AKindJFrame extends JFrame {
AKindJFrame(){
Container contents = getContentPane();
contents.add(getLoginPanel(), BorderLayout.CENTER);
contents.add(getButtonsPanel(), BorderLayout.SOUTH);
}
............
}
此做法表达的思想是组合现有的组件去构造新的组件。应该将新的组件理解成简单组件,因为你不期望运行时向其中添加新的组件,以免改变其组件层次。
2, 运行时动态实例化此类组件,并向其中添加其他组件。
此种做法没有创建新的组件,例如
public Class Launcher{
public static void main(String[] agrs) {
JFrame frame = new JFrame();
Container contents = frame.getContentPane();
contents.add(getLoginPanel(), BorderLayout.CENTER);
contents.add(getButtonsPanel(), BorderLayout.SOUTH);
}
...............
}