Java中的Swing

Swing工具包是Java SE平台的一部分,提供了一系列丰富的GUI组件,用来构建图形界面的应用程序。Swing工具包包含丰富的组件集合,用于构建GUI和为Java应用程序添加交互性。Swing包含从现代工具包所能获得的所有组件:表控件、列表控件、树控件、按钮和标签。

----Swing 的特性
Swing 是Java 基础类(Java Foundation Classes,JFC)的一部分。JFC 还包含对GUI 程序很重要的
其他特性,例如添加丰富的图形功能,以及创建可以用不同语言编写、可以由不同输入设备的用户使用
的程序。
1.Swing GUI 组件
Swing 工具包包含丰富的组件:从基本的组件(例如按钮和复选框),到丰富复杂的组件(例如表
和文本)。即使是看上去简单的组件(例如文本字段),也能提供复杂的功能(例如格式化的文本输入
或者密码字段行为)。Swing 还包含有适合大多数需求的文件浏览器和对话框。如果Swing 提供的组件
不能完全满足要求的话,则可以利用基本的Swing 组件功能创建自定义的组件。
2.Java 2D API
要使程序能可视化地传达信息,或者向GUI 中添加图形、图像或动画,那么就需要使用Java 2D API。
因为Swing 是构建在2D 包之上的,所以很容易就能在Swing 组件中使用2D。使用Java 2D 可以很容易
地添加图像、绘制阴影等。
3.插件式程序外观支持(look and feel)
任何使用Swing 组件的程序都可以选择程序外观。在Swing 中,有一个Synth 包,允许用户创建自
己的程序外观。
Java 程序可以指定使用其要运行的平台的程序外观,或者可以指定总是使用Java 的程序外观。如果
不指定的话,有UI 管理器负责选择合适的程序外观。
4.数据传递
在实际使用中,几乎所有的应用程序都可以通过剪切、复制、粘贴或拖放来传递数据。而Swing 内
置了对数据传递的支持,可以在一个应用程序的组件之间、Java 应用程序之间以及Java 程序和本地程序
之间很好的进行数据传递工作。
5.国际化
这个特性,使开发者能构建与遍布全世界的用户以各自的语言和文化习惯进行交互的程序。可以创
建接收使用数千个不同字符的语言的输入,如汉语、日语或朝鲜语。
Swing 提供的布局管理器,使进行界面设计时,更容易按UI 要求的方向进行界面布局,在文本是
自右向左的地区UI 的出现也是自右向左的。这个支持是自动的:只需要对UI 进行一次编码,然后UI
就会自右向左或自左向右地工作,同样地,组件的大小也会随文本的位置而改变大小。
6.易访问性API
残疾人在操作应用程序时,需要使用专门的辅助软件作为中介手段。这样的辅助软件需要获得正在
运行的应用程序的大量信息,以便以可替代的媒介形式来表示,如使用屏幕阅读器合成语音读出屏幕内
容,或者通过盲文显示表达内容;使用屏幕放大镜跟踪提示符和键盘焦点;屏幕上显示动态的键盘,用
来控制菜单选项、工具栏项目和对话框控件;语音控制系统使用户可以通过声音控制操作。而Java 的可
访问性API 使这些辅助软件能够获得所需的信息,并且通过程序操作构成图形用户界面的元素。

7.撤销框架API
Swing的Undo Frameword(撤销框架)允许开发者对撤销和重做提供支持。撤销支持是内置在Swing的文本组件中的,例如文本框组件。对于其他组件,Swing支持一个“无限”次数的撤销和重做动作。例如,能够很容易地撤销从一个表中添加和删除元素的操作。
8. 灵活的部署支持
使用Java编写的程序,既可以将其创建为Applet小应用程序并使用Java插件运行在浏览器窗口中(Java插件支持各种类型的浏览器,如IE浏览器、火狐浏览器(Firefox)和Safari浏览器),也可以使用Java Web Start创建一个能在浏览器中启动的应用程序,。
由Swing提供的组件几乎都是轻量级组件。因为轻量级组件是绘制在包含它的容器中的,而不是绘制在自己的窗口中,所以轻量级组件最终必须包含在一个重量级容器中。

-----创建带有窗体界面的简单应用程序HelloWorldSwing.java。

package chapter;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.SwingUtilities;

public class HelloWorldSwing {

        /* 创建一个GUI界面并显示. */

       private static void createAndShowGUI() {

                //创建并设置程序运行窗体.

              JFrame frame = new JFrame("HelloWorldSwing");                           //创建带有标题的窗体

              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       //设置当关闭窗体时自动关闭窗口

              //添加"Hello World"标签.

             JLabel label = new JLabel("Hello World");                                            //创建带有文字内容的标签对象

             frame.getContentPane().add(label);                                                      //将获得的标签对象添加到内容面板中

            //显示窗体.

            frame.pack();                                                                                               //所有组件以首选大小显示

            frame.setVisible(true);                                                                               //显示窗体

            }

           public static void main(String[] args) {

                   //为事件分发线程预订一个工作:

                   //创建并显示本程序的GUI.

                   javax.swing.SwingUtilities.invokeLater(new Runnable() {

                           public void run() {

                                    createAndShowGUI();                                                     //创建窗体并显示

                           }

                   });

           }

}

注意类名和文件名要保持一致!!!

你可能感兴趣的:(Java中的Swing)