版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第11章 图形界面_窗体简介,11.1 Java图形用户界面概述 11.2 常用组件(AWT) 11.3 窗口类,本章要点,掌握图形用户界面基本组件的使用方法 掌握窗体的基本属性及设计方法,11.1 Java图形用户界面概述,图形用户界面(GUI,Graphical User Interface)是为应用程序提供一个图形化的界面,程序通过GUI与用户交互,GUI能使一个应用程序具有与众不同的“外观”与“感觉”。 Java基类(Java Foundation Classes,JFC)是关于GUI组件和服务的完整集合,主要由5个API构成:AWT、Swing、Java 2D、Drag and Dr
2、op、Accessibility,11.1.1 AWT和Swing,1. AWT AWT(Abstract Window Toolkit)是一个独立平台的窗口工具组件集,它依赖于对等组件(Peer),而对等组件是一个本地GUI组件,由AWT类管理。AWT的作用是给用户提供基本的界面组件,如按钮、列表框、菜单等。 AWT最初只包括与本地对等组件相关联的组件,称为重量组件(Heavyweight Component),这些组件在它们自己的本地不透明窗口中绘制,在改变其默认行为时,不可以为其扩展子类,此外,它们必须是矩形的,且不能有透明背景。,2. Swing,Swing是建立在AWT基础之上的,它
3、利用了AWT的底层组件,包括图形、颜色、字体、工具包和布局管理器等。使用AWT最好的部分来建立一个新的轻量组件集,而丢弃了AWT中有问题的重量组件部分。 通过引入新特性和丰富的功能,Swing提供了比AWT更全面的组件集合。Swing API是围绕实现AWT各个部分的API构建的,这保证了所有早期的AWT组件仍然可以使用。,11.1.2 组件和容器,容器(Container)是组件(Component)的抽象子类,在该类中允许装入其他的组件,要装入的组件也可以是容器,在这些窗口中还可以装入其他的组件,这样可以创建完整的层次结构。容器有助于在屏幕上布置GUI组件。最常用的容器是Panel和Fra
4、me。,11.2 常用组件(AWT),java.awt中的各个类,图形组件类的继承关系,11.3 窗 口 类,AWT提供了三个在屏幕上显示窗口的组件:Window、Frame和Dialog。这三个组件都用于显示窗口,而且相互之间的区别也不明显,因此有时候很难确定到底使用哪个组件更好。为了帮助大家区分它们的不同用法,表11.1列出了各组件的属性特征。,表11.1 Window、Frame与Dialog组件的属性,java.awt.Window是三个窗口组件中最基本的组件,它实际上是Frame与Dialog组件的超类。窗口组件没有边界、标题栏与菜单栏,而且大小不可以调整。 常用窗口实现的界面包括:
5、产品信息的封面(如Outlook等软件启动时,显示在屏幕中间且几秒后自动消失的封面窗口),提示帮助信息(如使用金山词霸等软件时,移动鼠标到某个英文单词上时自动弹出的解释信息)等。,11.3.1 窗口(Window),例11.1 FrameDemo.java import java.awt.*; public class SplashDemo extends Frame Window window; public static void main(String args) SplashDemo frame = new SplashDemo(); public SplashDemo() windo
6、w = new Window(this);,下面我们通过一个例子来学习如何使用窗口类:,Dimension scmSize = Toolkit.getDefaultToolkit().getScreenSize(); int width = 300; int height = 200; window.setLocation(scmSize.width/2-(width/2),scmSize.height/2-(height/2); window.setSize(width, height); window.show();,续1,window.toFront(); try Thread.curr
7、entThread().sleep(3000); catch (Exception e) e.printStackTrace(); window.dispose(); System.exit(0); 这是个使用Window的窗口在屏幕上显示一个矩形窗口类的实例,这个窗口没有边界、标题栏与菜单栏,在屏幕上停留3秒后自动消失。如果在窗口中加载一幅图片,则能实现一个类似Outlook的封面窗口(在窗口中加载图片的方法我们将在第9章中学习)。,续2,程序中用到了工具类的方法Toolkit.getDefaultToolkit().getScreenSize()。Toolkit类是一个包含许多有用的本地工
8、具方法的类。getScreenSize()方法的作用是取得显示器的像素尺寸。 程序的运行结果如图8.2所示。,续3,续4,java.awt.Frame是Window的一个子类,它是带有标题栏和边界的窗口,而且允许调整大小。另外,用户还可以为框架附加一个菜单栏。用户在程序设计过程中,当程序窗口需要图表化或者需要包含菜单栏时,则可以选择使用框架组件。 构造一个框架后,可以用add()方法来给框架添加组件。框架的缺省布局管理器属性是BorderLayout。可以用setLayout()方式来改变布局管理器属性。,11.3.2 框架(Frame),框架类中的Frame(String)构造方法创建一个由
9、String规定标题的新的不可见的框架对象。 例11.2 FrameDemo.java import java.awt.*; public class FrameDemo extends Frame public FrameDemo(String title) super(title); public static void main(String agrs) FrameDemo frame = new FrameDemo(Demo Frame);,续1,frame.setLocation(100, 100); frame.setSize(500, 200); frame.setVisible
10、(true); 程序的运行结果如图8.3所示,它是一个具有标题、大小及背景颜色的框架。,续2,图 8.3,续3,java.awt.Dialog也是Window的扩展类。与框架相同的是,对话框也拥有边界与标题栏,而且也可以调整大小;而与框架不同的是,对话框不支持附加菜单栏,而且对话框可以模式化属性设置,这是窗口和框架都不允许的。因此,如果用户在程序设计过程中需要创建一个临时窗口与用户交换信息时,使用模式对话框是最方便的。另外,AWT中还提供了Dialog类的一个常用的扩展类FileDialog(文件对话框)。它可以为用户选择一个待打开或保存的文件。,11.3.3 对话框(Dialog),可以说对
11、话框是介于窗口和框架之间的,对话框和框架相比各有特色。我们来看一个典型的对话框的例子。 例11.3 DialogDemo.java import java.awt.*; public class DialogDemo public static void main(String agrs) Frame frame = new Frame();,续1,Dialog dialog = new Dialog(frame, Demo Dialog, false); dialog.setLocation(100, 100); dialog.setSize(500, 100); dialog.setVis
12、ible(true); 程序运行结果如下图所示。,续2,续3,文件对话框是文件选择设备的一个实现。它有自己的自由窗口以及窗口元素,并且允许用户浏览文件系统,以及为以后的操作选择一个特定的文件。例如: 例11.4 FileDialogDemo.java import java.awt.*; public class FileDialogDemo public static void main(String args) Frame parentFrame = new Frame();,续4,FileDialog d = new FileDialog(parentFrame, FileDialog); d.setVisible(true);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《严重过敏反应急救指南》重点2026
- 2026年河南省平顶山市叶县第八教研区三模九年级数学试卷(含答案)
- 七年级上册数学人教版第01章 有理数测试卷测试(原卷版)
- 窗帘采购合同范本(范本)
- 日照市五莲县2027届三上数学期末质量检测模拟试题含解析
- 重庆万州碳烤鱼餐厅股东合同(范本)
- 2027届湖南省娄底市冷水江市数学六年级第一学期期末教学质量检测试题含解析
- 汽车行业人才激励成功案例:华恒智信破解激励滞后认可缺失
- 家教服务合同范文汇编九篇
- 2027届重庆市三年级数学第一学期期末综合测试试题含解析
- 2026年浙江中考(语文)真题带答案
- 2026年医师定期考核考试题库及答案
- 2026年重庆市渝中区中考二模语文试卷
- 2026-2030轨道钢产业市场深度调研及发展趋势与投资前景研究报告
- 跨部门协作会议纪要模板及行动计划
- 儿童绘本故事《谁偷了我的饼》教学设计
- 安全生产资金保障制度范本
- 家庭触电事故案例分析
- GB/T 2978-2024轿车轮胎规格、尺寸、气压与负荷
- DL∕T 1821-2018 火电站闸阀、截止阀检修导则
- 冀教版数学七年级上下册知识点总结
评论
0/150
提交评论