嗨,你好,下面呢我们一起来学习组件。
组件是图形用户界面里面最基本的要素,那么图形用户界面又称为 GUI,
是我们现在编写应用程序最常见的一种界面模式。在 Java
里面呢它有两个包 来完成,一个是 AWT 也就是抽象窗口工具
集,另外一个是 swing。swing 是 JDK 1.2 以后引入的,
它是 Java 基本类库当中的一部分, 相对于 AWT
而言呢,它具有功能更强,界面也更丰富。
当然这两个我们现在都同时在用,其中 swing 呢用的更多一些。
那么这个 swing 有什么特点呢?它就是说呢在各种平台上面
更统一,同时它也是轻量级的, 也就是说它的大部分功能是由
Java 来 实现的。比如说这个按钮,它是实际上是
Java 里 画的这个按钮,而不是我们操作系统,比如说
Windows 里面 所拥有的按钮,所以它主要是,all-Java
language 所谓的,就是用 Java 实现的。当然 这个
swing 它是基于我们底层的一些库,比如说一些组件、一些窗口啊、对话框啊
等等,还有关于绘图啊等等,这一系列的这个库之上的整个一个体系, 都叫
swing。我们简单地说就是界面就是用 AWT 和 swing 来实现的。
这两个包分别是 AWT,java.awt 包
以及 javax.swing 包。那么 Java 你会发现呢它 有的包叫 java.
什么什么,有的叫 javax.
什么什么, 实际上这两个并没有太多的差异,也就是这个 x
呢主要是, 原始的意思是扩展的意思,就是更外缘的,更
边缘的,更外围的或者叫,所以这就是我们说的
这两类这个包。那么它里面的组件呢 也相似,比如说在
AWT 里面叫做 Frame, 那么 swing 里面就叫
JFrame。那么按钮 在 AWT 叫 Button,那么在 swing 里面叫
JButton 等等,还有标签 Label,TextField
文本框,TextArea 文本 区,也就是多行的文本,还有
Panel 面板,等等,那基本上都有对应的,都加一个字母 J。
那在 AWT,组件分为呢一个是普通的,我们统称为的叫组件
Component。然后组件又分两大类,一个是容器,一个是非容器。所谓容器呢
就是能够把别的元素放在里头的。那么容器又分两大类, 一个叫做
Window,就是窗口, 那么这个窗口我们最常用的就是
Frame,就是框架窗口,也就是带个 我们普通的窗口,就是带标题的这种窗口,然后
Dialog 对话框,还有非 这个顶层的窗口,也就是像面板啊,像
Scroll Pane,就是滚动面板等等,它是要放到哪里呢?
它是要放到这个顶层的,也就是或者放到 Frame 或者放到
Dialog 里头的。那么非容器的就是按钮啊,标签啊,
文本框等等。那么对于 swing 呢也是类似的,
它的顶层的那个容器是 JFrame、JDialog 和 JApplet,
那么一个是窗口、对话框,和 applet是在浏览器里面用的。
所有的这些容器都有 add 一个方法,就是把别的元素加到这里面,把子组件加到这里面。
我们注意到这个 JFrame,比如说它实际上是从 Object
到组件 到容器,再到窗口,再到 Frame,再到
javax.swing 到 JFrame。类似的 Applet 也是一样的。
这个 JApplet 它是 Applet 子类。那么对于非顶层的这些容器呢,它都是
JComponent, 就是 swing
里面的 组件。这个组件注意到它都是
容器,都是 container 的子类,包括我们说的按钮,比如说这个
JButton, 它实际上是 JComponent
的组件的 子类。那每一个组件呢都有很多的方法,
比如说 setToolTipText。