031801_AWT、Swing简介

合集下载

Java GUI:SWT、Swing、AWT的介绍及比较

Java GUI:SWT、Swing、AWT的介绍及比较

本文通过对 Eclipse 的 SWT 和 Java Swing、Abstract Windows Toolkit (AWT)GUI 工具包进行比较,可以帮助新应用程序的开发人员从中选择适当的工具。

首先我们要弄清一个问题:为什么会有多个Java™ GUI 工具包呢?最好的答案是,一个工具包并不能满足所有的要求,最近也不会开发一个可以满足所有要求的 GUI 工具包。

每个工具包都有各自的优缺点,这样就可以根据自己的需求和目标用户来选择适当的工具包。

下面就让我们来学习有关这些工具包的知识。

AWT 概述Abstract Windows Toolkit(AWT)是最原始的 Java GUI 工具包。

AWT 的主要优点是,它在 Java 技术的每个版本上都成为了一种标准配置,包括早期的 Web 浏览器中的 Java 实现;另外它也非常稳定。

这意味着我们不需要单独安装这个工具包,在任何一个 Java 运行环境中都可以使用它,这一点正是我们所希望的特性。

AWT 是一个非常简单的具有有限 GUI 组件、布局管理器和事件的工具包。

这是因为 Sun 公司决定为 AWT 使用一种最小公分母(LCD)的方法。

因此它只会使用为所有 Java 主机环境定义的 GUI 组件。

最终的结果非常不幸,有些经常使用的组件,例如表、树、进度条等,都不支持。

对于需要更多组件类型的应用程序来说,我们需要从头开始创建这些组件。

这是一个很大的负担。

通常对于 AWT 来说(也适用于 Swing 和 SWT),每个事件类型都有一个相关的 XxxListener 接口(XxxAdapter 的实现可能为空),其中 Xxx 是去掉Event 后缀的事件名(例如,KeyEvent 事件的接口是 KeyListener),用来把事件传递给处理程序。

应用程序会为自己感兴趣处理的事件的事件源(GUI 组件或部件)进行注册。

有时监听接口要处理多个事件。

AWT 的一个很好的特性是它通常可以对 GUI 组件自动进行销毁。

Swing讲解

Swing讲解
2015年10月14日10时18分
Swing容器与控件示图
JLabel标签 JFrame容器 表格
JTexteField 文本区域
JPasswordField 创建口令文本对象
JButton 按钮
2015年10月14日10时18分
JCheckBox 复选框
Swing控件
添加表格代码
2015年10月14日10时18分
Swing控件

创建代码:

JMenu file = new JMenu ("文件"); JMenu edit = new JMenu ("编辑"); JMenu format = new JMenu ("格式 ");

菜单栏
菜单条

JMenu help = new JMenu ("帮助"); JMenuItem newItem = new JMenuItem ("新建");


Swing程序

Swing类的程序设计一般可按照下列流程来进行
(1) (2) (3)
流程
引入Swing包 选择"外观和感觉" 设置顶层容器
(4)
(5) (6) (7)
设置按钮和标签
向容器中添加组件 在组件周围添加边界 进行事件处理
2015年10月14日10时18分
Swing容器与控件

菜单项对象 NhomakorabeaJMenuItem
saveItem = new
JMenuItem ("保存");

JMenuItem
exitItem = new

Java图形用户界面设计(Swing)的介绍

Java图形用户界面设计(Swing)的介绍

Java图形⽤户界⾯设计(Swing)的介绍前⾔Swing是⼀个⽤于开发Java应⽤程序⽤户界⾯的开发⼯具包。

它以抽象窗⼝⼯具包(AWT)为基础使跨平台应⽤程序可以使⽤任何可插拔的外观风格。

Swing开发⼈员只⽤很少的代码就可以利⽤Swing丰富、灵活的功能和模块化组件来创建优雅的⽤户界⾯。

Swing 是⼀个为Java设计的GUI⼯具包。

Swing是JAVA基础类的⼀部分。

Swing包括了图形⽤户界⾯(GUI)器件如:⽂本框,按钮,分隔窗格和表。

Swing提供许多⽐AWT更好的屏幕显⽰元素。

它们⽤纯Java写成,所以同Java本⾝⼀样可以跨平台运⾏,这⼀点不像AWT。

它们是JFC的⼀部分。

它们⽀持可更换的⾯板和主题(各种操作系统默认的特有主题),然⽽不是真的使⽤原⽣平台提供的设备,⽽是仅仅在表⾯上模仿它们。

这意味着你可以在任意平台上使⽤JAVA⽀持的任意⾯板。

轻量级组件的缺点则是执⾏速度较慢,优点就是可以在所有平台上采⽤统⼀的⾏为。

Hello World 程序HelloWorldSwing.java ⽂件代码如下:import javax.swing.*;public class HelloWorldSwing {/**{* 创建并显⽰GUI。

出于线程安全的考虑,* 这个⽅法在事件调⽤线程中调⽤。

*/private static void createAndShowGUI() {// 确保⼀个漂亮的外观风格JFrame.setDefaultLookAndFeelDecorated(true);// 创建及设置窗⼝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) {// 显⽰应⽤ GUIjavax.swing.SwingUtilities.invokeLater(new Runnable() {public void run() {createAndShowGUI();}});}}执⾏以下命令输出结果:$ javac HelloWorldSwing.java$ java HelloWorldSwing⼀个⽤户登录框实例SwingLoginExample.java ⽂件代码如下:import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;public class SwingLoginExample {public static void main(String[] args) {// 创建 JFrame 实例JFrame frame = new JFrame("Login Example");// Setting the width and height of frameframe.setSize(350, 200);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/* 创建⾯板,这个类似于 HTML 的 div 标签* 我们可以创建多个⾯板并在 JFrame 中指定位置* ⾯板中我们可以添加⽂本字段,按钮及其他组件。

第7章 AWT、Swing与Applet基础

第7章  AWT、Swing与Applet基础

Java 称由 称由Component类的子类或间接子类创建的对象为一个组件 类的子类或间接子类创建的对象为一个组件 类的子类或间接子类创建的对象为一个组件. 的子类或间接子类创建的对象为一个容器. 由Container的子类或间接子类创建的对象为一个容器 的子类或间接子类创建的对象为一个容器
说明: 说明: 可以向容器添加组件。 类提供了一个public 方 可以向容器添加组件。Component 类提供了一个 法 add( ),一个容器可以调用这个方法将组件添加到该容器 一个容器可以调用这个方法将组件添加到该容器 中 容器调用removeAll()方法可以移掉容器中的全部组件;调 方法可以移掉容器中的全部组件; 容器调用 方法可以移掉容器中的全部组件 用remove(Component c)方法可以移掉容器中参数指定的 方法可以移掉容器中参数指定的 组件。 组件。 每当容器添加新的组件或移掉组件时,应当让容器调用 每当容器添加新的组件或移掉组件时 应当让容器调用 validate()方法 以保证容器中的组件能正确显示出来 方法,以保证容器中的组件能正确显示出来 方法 以保证容器中的组件能正确显示出来. 注意到容器本身也是一个组件,因此你可以把一个容器添加 注意到容器本身也是一个组件 因此你可以把一个容器添加 到另一个容器中实现容器的嵌套. 到另一个容器中实现容器的嵌套 类不是包java.awt 中的类 上 中的类,上 在上图中需要注意的是 Applet 类不是包 图只是说明它是Panel的子类 是Container 的间接子类 它是 的子类,是 的间接子类.它是 图只是说明它是 的子类 中的类,不同包中的类可以有继承关系 不同包中的类可以有继承关系. 包java.applet 中的类 不同包中的类可以有继承关系
1996年,Netscape开发了工作方式完全不同 年 开发了工作方式完全不同 的GUI库,称为 库 称为IFC(Internet Foundation Classes),将用户界面元素绘制到空白窗口 , 对等体只需要构造和绘制窗口即可。 上,对等体只需要构造和绘制窗口即可。 Sun与之合作完善了这种方法,命名为 与之合作完善了这种方法, 与之合作完善了这种方法 “Swing”。 。 Swing提供了更好的用户界面组建,其事件 提供了更好的用户界面组建, 提供了更好的用户界面组建 处理模型还是与AWT的相同。 的相同。 处理模型还是与 的相同

Java图形用户界面(GUI)编程Swing和AWT库的使用

Java图形用户界面(GUI)编程Swing和AWT库的使用

Java图形用户界面(GUI)编程Swing和AWT库的使用在编程领域,图形用户界面(Graphical User Interface,简称GUI)是一种通过图形、图像和图标等可视化元素与用户进行交互的界面形式。

Java作为一种跨平台的编程语言,提供了多种库和框架来实现GUI编程的需求。

其中,Swing和AWT是两个常用的Java GUI库,它们提供了丰富的组件和功能来创建用户友好的界面。

本文将重点介绍Java Swing和AWT库的使用,帮助读者了解和掌握这两个库的基本用法。

一、Swing库的使用Swing库是Java提供的一个基于AWT库的GUI工具包,它提供了丰富的组件和功能来创建交互式的图形界面。

下面将介绍几个常用的Swing组件及其使用方法。

1. JFrame窗口JFrame是Swing中最基本的容器,它代表了一个窗口。

我们可以使用JFrame类创建一个窗口,并在其中添加其他的组件。

以下是一个示例代码:```javaimport javax.swing.*;public class MyFrame extends JFrame {public MyFrame() {setTitle("My Frame");setSize(300, 200);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true);}public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {public void run() {new MyFrame();}});}```在这个例子中,我们创建了一个名为"My Frame"的窗口,并设置了窗口的大小为300x200像素。

通过调用`setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)`方法,我们将在用户关闭窗口时退出程序。

Java----AWT组件开发和Swing界面编程

Java----AWT组件开发和Swing界面编程

Java----AWT组件开发和Swing界⾯编程⼀、AWT组件开发1、AWTAWT是抽象窗⼝⼯具箱的缩写,它为编写图形⽤户界⾯提供了⽤户接⼝,通过这个接⼝就可以继承很多⽅法,省去了很多⼯作。

AWT还能使应⽤程序更好地同⽤户进⾏交互。

AWT中的容器是⼀种特殊的组件,他可以包含其他组件,即可以把组件⽅法容器中。

类是⽤来存放其他组件的Component类的⼦类,Frame类⼜是Component的⼦类。

Frame类⽤于创建具有标题栏和边界的窗⼝。

这⾥通过继承Frame类来建⽴⾃⼰的界⾯。

[java]1. public class test extendsFrame{2. //创建构造器3. public test() throws HeadlessException {4. this.setTitle("第⼀个窗⼝程序");5. //x , y是距离显⽰器左上⾓的距离;w , h是窗⼝的长宽6. this.setBounds(100, 100, 250, 250);7. //或者使⽤以下⽅式代替上⾯的⼀句代码8. // this.setLocation(100, 100);9. // this.setSize(250 , 250);10. this.setVisible(true);11. }12. public static void main(String[] str) {13. new test();14. }15. }上⾯是窗⼝中⼀些必不可少的东西,下⾯是⼀些窗⼝的基础应⽤:>setTitle(“窗⼝”):定义窗⼝名称>add(button):把按钮添加到窗⼝中>setBackground(Color):设置窗⼝的背景颜⾊>setResizable(boolean):设置窗⼝⼤⼩是否可以改变>setAlwaysOnTop(boolean):设置窗⼝是否总在最上⾯>setBounds(x, y, w, h):设置窗⼝起始位置和⼤⼩>setVisible(boolean):设置窗⼝可见如果想创建多个窗⼝,只需要在主⽅法main()中创建多个对象就⾏了。

AWT和Swing的概述

AWT和Swing的概述

AWT和Swing的概述Java基本类Java基本类(JFC),由一些软件包组成。

这些软件包主要包括下面一些应用程序接口(API):•抽象窗口工具集(AWT)(1.1及以上版本)。

•Swing构件。

•Java2D应用程序接口(2D API)。

•兼容程序接口。

上面列出的这些应用程序接口可能会出现在多个软件包中。

例如:2D API在Java.awt 和Java.awt.image软件包中都存在,虽然像Java.awt.geom等一些特殊的软件包也支持2D API,但是大量的2D API类都存在于Java.awt软件包中。

AWT(1.1及以上版本)是JFC的核心。

AWT为JFC的构成提供了以下的基本结构: •代理事件模型。

•轻量构件。

•剪贴板和数据传输。

•打印和无鼠标操作。

抽象窗口工具集在开发applet和图形应用程序时,一般需要用到AWT,AWT是免费Java开发工具包(JDK)的一部分。

AWT的作用是给用户提供基本的界面构件,例如按钮、列表、菜单、文本域等等。

AMT 构件主要是用来建立图形用户界面的独立平台。

此外,AWT还提供事件处理结构、支持剪贴板、数据传输和图像操作。

随着2D API的出现,AWT还包括提供高级字体操作、打印、地理数据获取和输入方法等功能的软件包。

AWT的初始版本是基于在简单用户界面中开发小applet程序而设计的,与之相比,当前的AWT做了很大的改进,它提供事件模型重新设计、剪贴板和数据传输支持以及打印和无鼠标操作等功能。

从而与Parc Place的VisualWork或Borland公司的Object Windows Library(OWL)等企业级用户界面具有更多的可比性。

同位体和平台独立随着Applet程序和图形应用程序接口的发展,AWT提供了一系列的通用类,这些通用类在引用时不需要考虑特定的窗口平台,同位体(Peer)就属于这种AWT类集。

同位体是一种本地图形用户接口(GUI)构件,由AWT类管理。

深入浅出java swing程序设计-概述说明以及解释

深入浅出java swing程序设计-概述说明以及解释

深入浅出java swing程序设计-概述说明以及解释1.引言1.1 概述Java Swing是一种用于构建图形用户界面(Graphical User Interface,简称GUI)的Java库。

它为开发人员提供了丰富的组件和布局管理器,可以轻松创建具有各种功能和样式的交互式应用程序。

Java Swing的出现填补了Java原生GUI工具包的不足,为开发人员提供了更多的自定义和灵活性。

与AWT(Abstract Window Toolkit)相比,Swing提供了更多的组件和界面控件,同时具备更好的跨平台性。

Java Swing不仅仅是一个图形用户界面库,它还提供了一整套用于处理用户输入、图形绘制、多媒体展示等功能的类和工具。

开发人员可以利用这些工具快速构建具有丰富交互性的应用程序。

本文将深入浅出地介绍Java Swing程序设计的基本概念和技巧。

我们将从Swing的组件和布局开始,逐步展示如何创建简单且功能强大的用户界面。

通过学习本文,读者将能够掌握Java Swing的核心知识,并能够利用这些知识开发出符合自己需求的应用程序。

本文的目的是帮助读者快速上手Java Swing,了解其基本概念和使用方法。

同时,我们也将展望Java Swing的未来发展,探讨其在现代应用程序开发中的重要性和应用前景。

在接下来的正文部分,我们将详细介绍Java Swing的基本概念,包括组件、事件、布局等内容。

同时,我们还将给出一些实际的例子,以便读者更好地理解和应用所学知识。

总之,本文将从大纲所列的各个方面对Java Swing进行深入浅出的探讨,旨在帮助读者全面了解和掌握Java Swing程序设计的基本技巧和应用方法。

希望读者能够通过本文的学习,具备自主开发Java Swing应用程序的能力,并能在实际项目中灵活应用所学知识。

1.2 文章结构本文主要以深入浅出的方式介绍Java Swing程序设计。

文章分为引言、正文和结论三个部分,每个部分有相应的小节。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

布局管理器
使用布局管理器可以使容器中的组件按照指定的位置进行摆放,另外的一 个好处是,即使容器改变了大小,布局管理器也可以准确的把组件放到指 定的位置,这样就可以有效的保证版面不会混乱。在AWT中所有的布局 管理器都是LayoutManager的子类。
Swing简介
AWT大量的引入了Windows函数,所以经常被称为重量级组件,在Java 2中提供了轻量级的图形界面组件 —— Swing,Swing使用Java语言实现, 是以AWT平台为基础构建起来的新组件,直接使用Swing可以更加轻松的 构建用户界面。 在Java中所有的Swing都保存在javax.swing包中,从包的名称中(javax) 就可以清楚的发现此包是一个扩展包,所有的组件是从JComponent扩展 出来的。
AWT包组成
在整个AWT包中提供的所有工具类,主要分为以下三种: 组件:Component 容器:Container 布局管理器:LayoutManager
组件
在图形界面中,用户经常会看到一个个的按钮、标签、菜单等,那么这些 实际上就是一个个的组件。这些组件都会在一个窗体上显示。
JAVA 应用开发详解
第18章:图形界面 —— AWT、Swing简介
© MLDN 软件教学研发部
本章目标
了解AWT的作用 了解Swing与AWT的关系
AWT
AWT(Abstract Windowing Toolkit),抽象窗口工具包,是SUN公司在 发布JDK 1.0的时一个重要组成部分,是Java提供的用来建立和设置Java 的图形用户界面的基本工具。AWT中的所有工具类都保存在java.awt包中, 此包中的所有操作类可用来建立与平台无关的图形用户界面(GUI)的类, 这些类又被称为组件(components)。
JComponent的常用子类
下一章内容
基本容器:JFrame

Component
在整个AWT包中,所有的组件类(例如:按钮、文本框等)都是从 Component和MenuComponent扩展而来的,这些类会继承这两个类的公 共操作。
容器
所有的AWT组件都应该放到容器之中。在容器之中,所有的组件都可以 设置在容器中的位置、大小等等,所有的容器都是Component的子类, 在AWT中包含以下几种容器。
相关文档
最新文档