Java程序设计简明教程 教学课件 ppt 作者 李永杰 陈鑫伟 第7章 Java Swing

上传人:E**** 文档编号:89399557 上传时间:2019-05-24 格式:PPT 页数:46 大小:311KB
返回 下载 相关 举报
Java程序设计简明教程 教学课件 ppt 作者  李永杰 陈鑫伟 第7章  Java Swing_第1页
第1页 / 共46页
Java程序设计简明教程 教学课件 ppt 作者  李永杰 陈鑫伟 第7章  Java Swing_第2页
第2页 / 共46页
Java程序设计简明教程 教学课件 ppt 作者  李永杰 陈鑫伟 第7章  Java Swing_第3页
第3页 / 共46页
Java程序设计简明教程 教学课件 ppt 作者  李永杰 陈鑫伟 第7章  Java Swing_第4页
第4页 / 共46页
Java程序设计简明教程 教学课件 ppt 作者  李永杰 陈鑫伟 第7章  Java Swing_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《Java程序设计简明教程 教学课件 ppt 作者 李永杰 陈鑫伟 第7章 Java Swing》由会员分享,可在线阅读,更多相关《Java程序设计简明教程 教学课件 ppt 作者 李永杰 陈鑫伟 第7章 Java Swing(46页珍藏版)》请在金锄头文库上搜索。

1、第7章 Java Swing,Java Swing是Java语言中用来实现GUI(Graphic User Interface,图形用户界面)的类库。GUI是为了让程序与用户之间的交互,更加友好的一种机制。为用户提供直观的、可视化的交互界面。Swing组件是完全用Java语言编写、操作和显示的。Swing组件是Java语言中的基础类库,可以用来开发跨平台GUI组件。,7.1 Java Swing概述,Swing是Sun公司推出的第二代图形用户接口工具包,通过Swing可以开发出功能强大、界面优美的客户应用程序。Swing中不但提供了很多功能完善的控件,而且其还具有良好的扩展能力,用Swing来

2、进行交互界面的开发是一件另开发人员非常愉快的工作。 Swing从诞生到现在大致经历了如下几个阶段。 (1)Swing项目是从1996年底开始的,在项目开始的同时所有的参与者共同选定了这个名称,目的就是开发一个不依赖于本地系统的图形用户接口工具包。 (2)1997年后半年Swing进入测试阶段,并在1998年春随同JDK 1.1首次发行,对于JDK 1.1之前的版本,是不能使用Swing库的。 (3)Swing从首次发行开始,就不断快速的成长,自JDK 1.2之后,便被完全集成到了Java的标准类库中,成为Java基础类(JFC)库大家族中的一个重要组成部分。,7.2 一个简单的Swing程序,

3、通过上一节的介绍,读者对Swing的概念有了初步的了解,本节中将通过一个非常简单的Swing程序给读者举例。该例程序的功能为在对话框中显示一段文字信息,具体代码如下。 (1)第3行通过import语句对Swing包进行了导入,在进行Swing开发时读者要注意导入相关包,否则会编译不通过。 (2)本例程序是通过继承JFrame类来实现窗体开发的,这里读者不必深究,后面会详细介绍。 (3)第1027行的窗体类构造器中调用相关方法对控件的内容、大小位置,窗体的标题、大小位置等进行了设置,在这里读者也不必深究,后面将会详细介绍。 (4)主方法中通过调用窗体类的构造器创建了窗体对象,如果程序编写没有问题

4、,运行时窗体将按照代码设定的情况出现在桌面上。,7.3 Swing和AWT的对比,Swing诞生之前,Java中用来进行图形用户界面开发的工具包为AWT,本节将介绍Swing与AWT之间的关系及其在开发中需要注意的一些问题。 AWT是“Abstract Window Toolkit”的缩写,即“抽象窗体工具包”,其中提供的都是重量级对等控件。,7.3.1 Swing与AWT之间的关系,Swing是继AWT之后Sun推出的又一款GUI工具包,下面几点介绍了为什么要推出Swing工具包,以及Swing是否是AWT的替代品。 (1)AWT是随早期Java一起发布的GUI工具包,是所有Java版本中都

5、包含的基本GUI工具包,其中不仅提供了基本的控件,并且还提供了丰富的事件处理接口。Swing则是建立在AWT1.1中引入的轻量级工具之上的,也就是说AWT是Swing大厦的基石。,7.3.1 Swing与AWT之间的关系,(2)AWT中提供的控件数量很有限,远没有Swing丰富,例如Swing中提供的JTable、JTree等高级控件在AWT中就没有。另外,AWT中提供的都是重量级控件,如果编写的程序希望运行在不同的平台上,必须在每一个平台上单独测试,无法真正实现“一次编写,随处运行”。,7.3.1 Swing与AWT之间的关系,(3)Swing的出现并不是为了替换AWT,而只是提供功能更丰富

6、的开发选择,Swing中使用的事件处理机制就是AWT1.1中提供的。因此实际开发中会同时使用Swing与AWT,但一般控件只采用Swing的,而很多辅助类时常需要使用AWT当中的,特别是在进行事件处理开发时。 通过上面的介绍读者应该体会到,Swing与AWT是合作的关系,并不是用Swing取代AWT。,7.3.2 Swing与AWT的控件的混用建议,由于AWT中提供的是重量级控件,是依赖本地系统的对等体实现的,而Swing控件属于轻量级控件,是由纯Java编写的,使用基本图形元素直接在屏幕上绘制,因此在搭建界面时,如果将二者同时使用,就有可能会出现先后遮挡关系不正常的现象。,7.4 界面图形的

7、绘制以及文字显示与颜色控制,随着时代的发展,现代的GUI应用程序中或多或少的会设置一些图形或动画。这样既能美化界面,使应用程序的内容丰富多采,也可以增加应用程序的交互性。使用带有丰富图象与动画的应用程序,用户会有更好的体验,不会感到乏味无趣。本小节将简单介绍在Java中如何绘制图形、显示文字及控制颜色显示。,7.4.1 图形绘制,本节将首先从简单图形的绘制入手,介绍在Java中是如何绘制各种基本图形的。 1画布的相关知识 若要绘制图形,必须具备两个要素,一个是画布,另一个则是画笔。缺少了任何一个元素,图形的绘制都将无法进行,因此本小节将介绍Java中画布的相关知识。 Swing中任何JComp

8、onent类的子类都可以充当画布的角色,前面已经介绍过JComponent类是所有Swing控件的超类,因此所有的Swing控件都可以作为画布。,7.4.1 图形绘制,2画笔的相关知识 上一小节介绍了画布的相关知识,本小节将介绍画笔的相关知识。Java在绘制图形时,是由Graphics类对象来充当画笔的,该类位于java.awt包中。Graphics类中提供了很多绘制简单二维图形的方法,开发人员使用这些方法就可以在画布上绘制指定的图形。 在了解各个绘图方法之前,首先应该理解下面两个方面的内容。 (1)Graphics对象的获取 (2)坐标系统,7.4.1 图形绘制,3颜色的调配 绘制图形时可能

9、要采用不同的颜色,这时就需要使用Java中提供的Color类。Color类位于java.awt包中,美的对象代表一个32位的颜色,其中24位用来表示红(R)、绿(G)、蓝(B)颜色分量的强度,每个颜色分量8位,剩下的8位表示颜色的Alpha(透明)度。 Color类提供了7个构造器,表7-3列出了其中比较常用的4个。:public Color(floatr,floatg,floatb) public Color(floatr,floatg,float b, floata) public Color(int r,int g,int b) public Color(int r,int g,int

10、b,int a),7.4.2 文本显示,使用画笔不但可以在画布上绘制各种图形,也可以绘制指定内容的文本。在绘制文本时还可以为画笔指定特定的字体,本节将介绍绘制文本与控制字体方面的相关知识。 1drawString方法简介 2字体的控制,7.4.3 动画效果,实际开发中,有时不但需要静态的图形还需要动画,有了动画可以使应用程序的人机交互界面更美观、更友好。本节将结合前面介绍过的绘制静态图形的知识,介绍Java中动画程序的开发。 1动画实现的原理 学习开发动画程序之前,首先需要了解编写动画的原理。本小节将介绍在Java中编写动画的原理,还将介绍关于画布重新绘制的问题。 (1)编写动画的原理 (2)

11、重新绘制,7.4.3 动画效果,2Timer类简介 开发动画时经常需要定时执行指定的任务,这时可以自己开发一个线程来实现。如果任务很简单,自己开发线程就不是很合算。为了简化开发,Swing中专门提供了一个用来定时执行任务的类javax.swing.Timer。 使用Timer类来开发定时执行指定任务的类非常简单,该类仅提供了一个构造器,声明如下。 public Timer(int delay,ActionListener listener) (1)参数delay为指定的初始延迟和动作事件间延迟的毫秒数。 (2)参数listener为指定的初始监听器,可以为null。,7.5 对话框与面板,对话

12、框和面板是Swing中,提供用来创建表示图形用户界面的类。该类的对象将被当作容器使用,所有的Swing组件都必须被添加到容器中,才能被显示出来。,7.5.1 顶级容器概述,所有的Swing组件都是抽象类JComponent类的子类。JComponent类是大多数Swing组件的超类,声明了所有JComponent子类共有的属性和方法,例如包含了用于设置组件大小、修改背景颜色、定义字体等一系列的方法。JComponent类(javax.swing包)是Container类的子类。Container类用来管理一组相关的组件,内容面板就是Container类的一个对象。Container类中声名了所

13、有Container子类共有的属性和行为。,7.5.2 JFrame主对话框,JFrame是一个对话框容器组件,与其他的Swing组件不同,JFrame组件不是用纯Java语言所编写的,是一个重量级的组件,其中包含了操作系统中部分GUI的方法。所谓重量级组件,实际上就是说该组件在创建的时候,都会有一个相应的本地计算机中的组件在为它来工作。 JFrame是一个对话框容器组件,可以被显示在用户桌面上,同时也是一个框架,在其中可以添加需要的其他的Swing组件。但需要注意的是:在创建了Swing窗体后,是不能够直接把组件添加到创建的窗体中的,Swing窗体含有一个称为内容面板的容器,组件只能添加到S

14、wing窗体对应的内容面板中。创建Swing窗体对应的内容面板,可以使用Container类中的getContentPane()方法获得内容面板对象,如下代码所示。 Container comtent = getContentPane(); /获得内容面板,7.5.3 JDialog对话框,JDialog是Dialog类的子类,该类所创建的对话框对象也是重量容器。创建的JDialog对象可以用来向用户返回信息,接收用户的输入,实现与用户的交互。但JDialog与JFrame对话框的区别在于:JDialog对象需要依赖于其他的对话框(比如JFrame)而存在,当它所依赖的对话框关闭或最小化的时候

15、,该对话框也随之关闭或最小化;当对话框还原时,对话框也随之还原。对话框分为两种模式,分别为: (1)响应模式:只让程序响应对话框的内部事件,而对于对话框以外的事件则不予响应; (2)非响应模式:该模式可以让程序响应对话框以外的事情。,7.5.4 JPanel面板的使用,如果需要创建复杂的GUI 程序,就需要将对话框中的每一个组件都放置在精确的位置上,这种情况下就需要一种中间容器:JPanel面板类。因为JPanel类是Container容器的子类,因此JPanel类以及其子类的实例同样是一个容器也是一个组件。对话框中可以由多个面板组成,每一个面板都以特定的布局来排列组件。在一个容器里添加了多个

16、组件后,再将这个容器组件添加到别的容器里,就形成了容器间的嵌套。,7.6 常用的组件,创建图形用户界面GUI,就是为了让计算机程序更好的和用户交互。Java Swing提供了二十多种不同的用户界面组件。所有的Swing组件都是从javax.swing.Jcomponent类中派生而来的,从而继承了组件所特有的属性和方法。例如setEnable(boolean b)方法,当组件对象调用该方法并且参数值为true时,组件就会被启用;而当参数值为false时,组件会被禁用,外观也会发生变化。同时组件对象可以调用isEnable()方法来检查组件是否被启用。,7.6.1 按钮,按钮组件是GUI中最常用到的一种组件了。按钮组件可以捕捉到用户的点击,同时利用按钮事件处理机制响应用户的请求。JButton类是Swing提供的按钮组件,在用户单击JButton类对象创建的按钮时,会产生一个ActionEvent事件。,7.6.2 文本组件,在这一节中,将主要介绍Java Swing提供的,用于处理文本交互的组件,包括JTextField文本框、JPasswordField

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号