1、 swing常用的package
javax.
swing; 最常用的pachage,包含各种swing组件的类
javax.swing.border; 包含与swing组件外框有关的类;
javax.swing.colorchooser; swing调色盘组件(JColorChooser)所设计的类
javax.swing.event; 处理由swing组件产生的时间,有别于AWT事件
javax.swing.filechooser; 包含针对swing文件选择对话框(JfileChooser)所设计的类
---------------------------------------------------------------------------------------------------------------------------
javax.swing.plaf; 处理swing组件外观的相关类
javax.swing.plaf.basic;
javax.swing.plaf.metal;
javax.swing.plaf.multi;
---------------------------------------------------------------------------------------------------------------------------
javax.swing.table; 针对swing表格组件(JTable)所设计的类
---------------------------------------------------------------------------------------------------------------------------
javax.swing.test; 包含与swing文字组件相关的类
javax.swing.text.html;
javax.swing.test.html.parser;
javax.swing.test.rtf;
---------------------------------------------------------------------------------------------------------------------------
javax.swing.tree; 针对swing树关元件(JTree)所设计的类
javax.swing.undo; 提供swing文字组件Redo或Undo的功能2、 swing的版面结构
swing中几乎所有组件都是从Jcomponent衍生而来,也就是说这些组件都是lightweight Component,均由纯java code编写而成;而swing中以下几个组件不是由Jcomponent继承而来:JFrame; JDialog; JWindow; JApplet;以上四个组件是heavyweight Component,必须使用到native code来画出这四个窗口组件,因为要在操作系统中显示窗口画面,必须使用操作系统的窗口资源,而以往的AWT组件大多使用native code所构造出来,因此swing中的JFrame便继承原由的AWT中的Frame类,而不是继承JComponent类。同样,JApplet是继承原由AWT中的JAppet类,也不是继承JComponent类。JFrame、JDialog、JWindow及JApplet这四个组件统称为最上层组件,因为其余的swing组件都必须依附在此四组件之一上才能显示出来。此四组件均实现(Implements)RootPaneContainer这个接口,此界面定义了各种容器和设置,但并不是真实的容器,它由Glass Pane与Layerde Pane所组成(Layered Pane里拥有COntent Pane与Menu Bar,而Menu Bar可选择使用或不使用)。我们不能在在JRootPane上加入任何的组件,因为它只是一个虚拟的容器,若在最上层组件上加入组件,必须加在Layered Pane或是Layered Pane里的Content Pane上。以JFrame为例,一般我们要在JFrame上加入其他组件必须先取得JFrame的Content Pane,然后将要加入的组件放在此Content Pane中,而不是直接就加到JFrame上。因此若要在JFrame中加入一个按钮,必须先取得JFrame的Content Pane,然后将按钮加入Content Pane中:frame.getContentPane().add(button);注:
(1) 组件必须加在容器中,而容器本身具有层次性的关系,若想在JFrame加入任何组件时,必须先取得JFrame的容器来放置这些组件,而JFrame、JDialog、JWindow、JApplet是显示swing组件的源头,因此称之为根组件,即最上层组件。
(2) RootPaneContainer是一个interface,共有5个类实现他,分别是JFrame、JApplet、JWindow、JDialog、JInternalFrame,其中JInternalFrame是一个ligntweight Component,他不是最上层组件,因此不能单独显示,必须依附在最上层组件中。RootPaneContainer定义了下面几种方法:
Container getContentPane(); 返回contentPane
Component get GlassPane(); 返回glassPane
JLayeredPane getLayeredPane(); 返回layeredPane
JRootPane getRootPane(); 返回属于这个组件的JRootPane
void setContentPane(Container contentPane); 设置ContentPane
void setGlassPane(Component glassPane); 设置GlassPane
void setLayeredPane(JLayeredPane layeredPane); 设置LayeredPane添加按钮代码:
JFrame frame=new JFrame();
Container contentPane=frame.getContentPane();
JButton button=new JButton();
contentPane.add(button);