Java Swing 简介
Swing是一个Java基础类 JFC] 库和抽象窗口工具包 [AWT] 的扩展。 Swing 提供了比 AWT 大大改进的功能、新组件、扩展的组件特性、出色的事件处理以及拖放支持。
Java Swing介绍
Swing 的用户界面 [U1] 组件的数量大约是 AWT 的四倍,并且是标准Java发行版的一部分。根据当今的应用程序 GUI 要求,AWT 是一种有限的实现,不能提供开发现代商业应用程序所需的复杂 GUI 所需的组件。 AWT 组件集有很多错误,与等效的 Swing 资源相比,确实占用了大量的系统资源。 Netscape 引入了它的 Internet Foundation Classes [IFC] 库以用于Java。它的类在为商业应用程序创建 GUI 的程序员中非常流行。
- Swing 是一组 API(API-Set Of Classes and Interfaces)
- 提供 Swing 用于设计图形用户界面
- Swing 是 AWT(抽象窗口工具包)的扩展库
- 包括新的和改进的组件,这些组件一直在增强 GUI 的外观和功能
- Swing 可用于构建(开发)独立的 swing GUI 应用程序,也可用作 Servlet 和 Applet
- 它采用模型/视图设计架构
- Swing 比 AWT 更便携、更灵活,Swing 是建立在 AWT 之上的
- Swing 完全用Java编写
- Java Swing 组件是平台无关的并且 Swing 组件是轻量级的
- Swing 支持 Pluggable 外观和感觉 Swing 提供更强大的组件
- 例如表格、列表、滚动窗格、颜色选择器、选项卡窗格等
- MVC 之后的进一步摇摆
许多程序员认为 JFC 和 Swing 是一回事,但事实并非如此。
JFC 包含 Swing [一个 UI 组件包] 和相当多的其他项目:
- 剪切和粘贴:剪贴板支持
- 辅助功能:旨在为残障用户开发 GUI
- 桌面颜色功能已在Java 1.1 中首次引入
- Java 2D:改进了颜色、图像和文本支持
摇摆班的特点
- 可插拔的外观和感觉
- 使用 MVC 架构
- 轻量级组件
- 平台无关
- 高级功能,例如 JTable、JTabbedPane、JScollPane 等
- Java是一种独立于平台的语言,可以在任何客户端机器上运行,GUI 的外观和感觉,由特定于平台的 O/S 拥有和交付,不会影响使用 Swing 组件构建的应用程序的 GUI
- 轻量级组件:从 JDK 1.1 开始,其 AWT 支持轻量级组件开发。对于有资格成为轻量级的组件,它不能依赖于任何非 Java [基于 O/s 的)系统类。 Swing 组件有自己的视图,由 Java 的外观类支持
- Pluggable Look and Feel:此功能使用户能够在不重新启动应用程序的情况下切换 Swing 组件的外观。 Swing 库支持在程序运行的所有平台上保持相同的组件外观。 Swing 库提供了一个 API,它在确定应用程序的 GUI 的外观和感觉方面提供了真正的灵活性
Swing 类层次结构
MVC 连接
- 通常,视觉组件是三个不同方面的组合:
- 组件在屏幕上呈现时的外观
- 组件对用户做出反应的方式
- 与组件关联的状态信息
- 多年来,一种组件架构已证明自己非常有效:-模型-视图-控制器或简称MVC 。
- 在 MVC 术语中,模型对应于与 Component 关联的状态信息
- 视图确定组件在屏幕上的显示方式,包括受模型当前状态影响的视图的任何方面。
- 控制器确定组件如何对用户做出反应
最简单的 Swing 组件具有远远超出 AWT 组件的功能,如下所示:
- 摆动按钮和标签可以显示图像而不是文本或除了文本之外
- 大多数 Swing 组件周围的边框都可以轻松更改。例如:很容易在 Swing 标签的外部放置一个 1 像素的边框
- 摆动组件不必是矩形的。例如,按钮可以是圆形的
- 现在,屏幕阅读器等最新的 Assertive 技术可以轻松地从 Swing 组件中获取信息。例如:屏幕阅读器工具可以轻松捕获 Swing 按钮或标签上显示的文本
Swing Class的组成部分任务的百分比
Class | Description |
---|---|
Component | A Component is the Abstract base class for about the non menu user-interface controls of SWING. Components are represents an object with graphical representation |
Container | A Container is a component that can container SWING Components |
JComponent | A JComponent is a base class for all swing UI Components In order to use a swing component that inherits from JComponent, component must be in a containment hierarchy whose root is a top-level Swing container |
JLabel | A JLabel is an object component for placing text in a container |
JButton | This class creates a labeled button |
JColorChooser | A JColorChooser provides a pane of controls designed to allow the user to manipulate and select a color |
JCheckBox | A JCheckBox is a graphical(GUI) component that can be in either an on-(true) or off-(false) state |
JRadioButton | The JRadioButton class is a graphical(GUI) component that can be in either an on-(true) or off-(false) state. in the group |
JList | A JList component represents the user with the scrolling list of text items |
JComboBox | A JComboBox component is Presents the User with a show up Menu of choices |
JTextField | A JTextField object is a text component that will allow for the editing of a single line of text |
JPasswordField | A JPasswordField object it is a text component specialized for password entry |
JTextArea | A JTextArea object s a text component that allows for the editing of multiple lines of text |
Imagelcon | A ImageIcon control is an implementation of the Icon interface that paints Icons from Images |
JScrollbar | A JScrollbar control represents a scroll bar component in order to enable users to Select from range values |
JOptionPane | JOptionPane provides set of standard dialog boxes that prompt users for a value or Something |
JFileChooser | A JFileChooser it Controls represents a dialog window from which the user can select a file. |
JProgressBar | As the task progresses towards completion, the progress bar displays the tasks percentage on its completion |
JSlider | A JSlider this class is lets the user graphically(GUI) select by using a value by sliding a knob within a bounded interval. |
JSpinner | A JSpinner this class is a single line input where the field that lets the user select by using a number or an object value from an ordered sequence |