Swing组件继承关系

       Swing组件作为一种轻量型组件,所谓轻量,是指Swing组件是由纯代码架构的,具有很好的跨平台可移植性,在当今编程中越来越广泛使用,而AWT组件由于其架构的“重量”,慢慢的被JAVA官方抛弃;相比AWT组件,Swing组件较Awt组件的优势我就不多说了。

       这里我想说的是Swing组件的关系继承,相信了解了Swing组件的继承关系后,再使用Swing一定会变得更加轻松。

       Swing组件常用基本组件的JLabel,JTextField(JPasswordField),JTextArea(JTextPane,JEditPane 多行文本使用,可以设置文本的对齐方式,字体大小,段落间隔等等,而JTextArea则不行,这个Api上有说明),JRadioBox,JCheckBox,JComboBox,JList,JSpinner,JTable,JTree,JSlider,JProgressBar,JScrollBar(滑动块),JSperator;

       Swing常用的中间组件有JPanel,JScrollPane(相比其他Panel有点特殊,通过它的getViewPort().add()这样使用来增加中间或基本组件),JTabbedPane,JSplitPane,JToolBar,(JLayeredPane,JRootPane,JDeskTopPane,JInternalFrame 这四个比较特殊,一般不怎用)

       Swing常用的顶层容器有JFrame,JApplet(网络编程常用),JDialog,JWindow。

       上面这些组件都引用自包javax.swing.*;这些组件继承自java.swing.JComponent;而java.swing.JComponent又继承自java.awt.Container,java.awt.Container继承于java.awt.Component,java.awt.Component继承于java.lang.Object;如下图所示。

Swing组件继承关系

     由于Swing组件是继承自AWT组件的,所以有时候(特殊情况)可以用AWT容器来装Swing组件,比如Container con=jFrame.getContentPane();这里的对象con是属于AWT组件,而jFrame.getContentPane()属于Swing组件。其实Container可以装任何Swing组件,因为,swing类就是从AWT类继承而来的。Swing组件继承关系Swing组件继承关系18