版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目四
图形用户界面设计授课人:韩淑芹潍坊工程职业学校信息工程系Swing概述一、AWT包和Swing包Java语言提供的开发图形用户界面(GUI)的功能包括AWT(AbstractWindowToolkit)和Swing两部分。这两部分功能由Java的两个包来完成——AWT和Swing。虽然这两个包都是用于图形用户界面的开发,但是它们不是同时被开发出来了。AWT包是最早被开发出来的。但是使用AWT包开发出来的图形用户界面并不完美,在使用上非常的不灵活。比如AWT包所包含的组件,其外观是固定的,无法改变,这就使得开发出来的界面非常死板。这种设计是站在操作系统的角度开发图形用户界面,主要考虑的是程序与操作系统的兼容性。这样做的最大问题就是灵活性差,而且程序在运行时还会消耗很多系统资源。由于AWT包的不足表现,SUN公司于1998年针对它存在的问题,对其进行了扩展,开发出了Swing,即Swing包。但是,SUN公司并没有让swing包完成替代AWT包,而是让这两个包共同存在,互取所需。AWT包虽然存在缺点,但是仍然有可用之处,比如在图形用户界面中用到的布局管理器、事件处理等依然采用的是AWT包的内容。Swing概述Java有两个主要类库分别是Java包和Javax包。在Java包中存放的是Java语言的核心包。Javax包是Sun公司提供的一个扩展包,它是对原Java包的一些优化处理。Swing包由于是对AWT包的扩展和优化,所以是存放在Javax包下的,而AWT包是存放在Java包下的。虽然Swing是扩展包,但是,现在的图形用户界面基本都是基于Swing包开发的。importjava.awt.*;importjavax.swing.*;Swing包的组件大部分是采用纯Java语言进行开发的,这就大大增加了组件的可操作性,尤其是组件的外观。通常情况下,只要通过改变所传递的参数的值,就可以改变组件的外观,而且Swing包还提供LookandFeel功能,通过此功能可以动态改变外观。Swing包中也有一些组件不是用纯Java语言编写的,这些组件一般用于直接和操作系统进行交互的。二、与GUI(GraphicalUserInterface)有关的术语1、组件构成图形用户界面的各种元素称为组件,组件可以包括文本框、按钮、列表框、对话框等。2、容器容器是图形用户界面中容纳组件的部分,一个容器可容纳一个或多个组件,甚至可以容纳其他容器。容器与组件的关系就像杯子和水的关系。需要说明的是,容器也可以被称为组件。在任务1中的JFrame就是一个容器。3、布局管理器组件在被放到容器中时,要遵循一定的布局方式。在Java的图形用户界面中,有专门的类来管理组件的布局,称这些类为布局管理器。所谓的布局管理器,实际上就是能够对组件进行布局管理的类。Swing概述三、AWT(AbstractWindowToolKit
抽象窗口工具包)事件处理机制1.事件处理机制的过程通过GUI组件,用户可以对应用程序进行各种操作,反之,应用程序可以通过GUI组件收集用户的操作信息,如用户在窗口上移动了鼠标、按下了键盘、点击了按钮等。如果我们单击某个按钮时执行某种功能,就必须编写相应的处理程序代码。对于这种GUI程序与用户操作的交互功能,Java使用了一种自己的专门方式,称之为事件处理机制。
事件处理机制概述事件处理机制中的概念:事件:用户对组件的一个操作,称之为一个事件(Event)。如点击按钮会产生一个动作(Action)事件、缩放或是关闭框架会产生一个窗口(Window)事件、移动鼠标会产生鼠标移动(MouseMotion)事件。事件源:发生事件的组件就是事件源。事件处理器:某个Java类中的负责处理事件的成员方法。三者之间的关系如图所示。事件处理机制概述Java程序对事件进行处理的方法是放在一个类对象中,这个类对象就是事件监听器。Java中事件处理机制的一般过程是:
(1)事件监听器注册将一个事件监听器对象同某个事件源的某种事件进行关联,这样,当某个事件源上发生了某种时间后,关联的事件监听器对象中的有关代码才会被执行,这个关联的过程称为向事件源注册事件监听器对象。
(2)发生事件用户操作了GUI组件,发生了某个事件。
(3)生成事件对象并处理发生事件后,组件就会产生一个相应的事件对象,并把此对象传递给与之对应的事件处理器,事件处理器就会执行相应的代码来处理事件。事件处理机制概述2.事件分类事件用以描述发生了什么事情。AWT对各种不同的事件,按事件的动作(如鼠标操作、键盘操作)、效果(如窗口的关闭和激活)等进行了分类,每一类事件对应一个AWT事件类。AWT的事件类可以通过JDK文档中的java.awt.event包进行查阅,常见的事件类有:MouseEvent:对应鼠标的按下、释放、点击等事件。WindowEvent:对应窗口的关闭、最小化、得到与失去焦点等窗口事件。
ActionEvent:对应一个动作事件,如菜单、按钮被单击或者键盘操作,则触发一个动作事件。可以理解为,用户的一个动作导致了某个组件本身最基本的作用发生了,这就是ActionEvent事件。菜单、按钮放在那里就是用来发出某种动作或者命令的,鼠标单击(也可以用键盘来操作)这些组件,只是表示要执行这种动作或命令的事情发生了。事件处理机制概述3.事件监听器接口某一类事件,其中又包含触发这一事件的若干具体情况。对一类事件的处理由一个事件监听器对象来完成,对于触发这一事件的每一种情况,都对应着事件监听器对象的一个不同的方法。如窗口事件,对应着WindowEvent事件对象,在这个对象里包含很多的方法,这些方法包括:
publicvoidwindowOpened(WindowEvente)
publicvoidwindowClosing(WindowEvente)
publicvoidwindowClosed(WindowEvente)
publicvoidwindowIconified(WindowEvente)
publicvoidwindowDeiconified(WindowEvente)
publicvoidwindowActivated(WindowEvente)
publicvoidwindowDeactivated(WindowEvente)
事件处理机制概述界面如下:举例一完成步骤:1.创建工程文件2.设计界面3.编写代码4.执行常用组件介绍步骤:1.Filenewproject2.建立包常用组件介绍3.右击包名newother常用组件介绍在设计图形用户界面时,我们往往会用到一些组件,这些组件构成GUI界面的元素。Swing对AWT进行了扩展,增加了AWT包下组件的功能,为了与原来组件进行区别,在Swing包下的所有组件名称都在原来名字的前面加了一个“J”。因此,在Java的图形用户界面中,以“J”为首字母的组件都归属于Swing包1.JFrame组件是一种顶层(Top-Level)容器组件,Swing组件中还有其它顶层容器如: Jdialog:对话框 Japplet:用于设计嵌入网页中的java小程序通过JFrame创建框架的常用方式有两种: newJFrame(); newJFrame(Strings);其中Strings就是窗口的标题。常用组件介绍JFrame类包含的方法:(1)设置窗口大小的方法
pack():根据所容纳的组件自定义窗口的大小setSize(w,h):设置的窗口大小是固定的,不受组件的影响。
setBounds(x,y,w,h):设置窗口的大小,及窗口在屏幕上显示的位置。其中x和y是设置窗口在屏幕上显示的起始坐标,w和h是设置窗口的大小。
(2)标题设置方法
setTitle(Strings):方法可以设置窗口的标题。(3)设置窗口前景色和背景色方法
setForeground(Colorc):用于设置窗口前景色。setBackground(Colorc):用于设置窗口背景色。
例:win.setBackground(Color.blue);窗口背景色设置为蓝色。
(4)显示窗口方法
setVisible(booleanb):将窗口显示在屏幕上。其中的参数是布尔值。当参数值为true时,显示窗口;当参数值为false时,不显示窗口。
常用组件介绍2.
JLabel标签通常是用来标识另外一个组件的含义。可以在标签上显示文字、图像或是文字图像的组合。相关的方法:setText():getText():setAlignment():getAlignment():setIcon(Iconimage):getIcon():setForeground(Colorc):setBackground(Colorc):常用组件介绍练习题目:设计如下图所示的界面,并实现当鼠标点击任何一个标签控件时,都能实现另外两个标签控件的文本互换。常用组件介绍3.文本输入类组件文本框(JTextField)、密码框(JPasswordField)、文本域(JTextArea)以及可编辑的组合框(JComboBox)等。JTextField控件:用户只能输入单行的文本,JTextArea控件:用户可以输入多行的文本。JPasswordField控件:用户向密码框中输入文本时,实际的输入文本并不在密码框中显示,而是使用特殊的回显字符(通常是'*')加以显示。JComboBox控件:可预先设置候选的文本串,用户可以方便地选择合适的文本。当候选的文本串均不合适时,在可编辑状态下,用户可以向组合框中输入文本,这也是把可编辑的组合框分类到文本输入类组件的原因。对于不可编辑的组合框,可以归类为选择类组件。常用组件介绍例题1:常用组件介绍例题:2常用组件介绍文本框(JTextField)的相关方法:getText()方法,可以取得文本框中的文本内容setText():设置文本区中的文本getSelectedText():获取当前被选定的文本Select(intstartIndex,intendIndex):选择部分文本setEditable(booleanaValue)方法来设置文本框是否可编辑。isEditable():判定文本区的可编辑性。requestFocus():使文本框获得焦点文本框的相关事件Caret:当用户使用键盘、鼠标等移动了文本光标在JTextField中的位置时触发这个事件常用组件介绍密码框(JPasswordField)的相关方法
setEchoChar(charc):改变缺省的回显字符。
getPassword():取得密码框中的文本,该方法返回的是一个char数组。如:
//创建了一个密码框
JPasswordFieldtxtPwd=newJPasswrodField(20);
//设定该密码框的回显字符为'#'
txtPwd.setEchoChar('#')
//取得密码框中的内容
char[]pwd=txtPwd.getPassword();
//将char数组转化为String类型的对象
StringpwdStr=newString(txtP.getPassword());
常用组件介绍文本域的相关方法:
setLineWrap(true):将文本域设置为自动换行set
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精装修材料订购合同
- 工矿设备购销合同样本
- 多方借款合同范本示例
- 虚拟现实技术培训合同
- 招标代理业务补充协议
- 经济实惠零件选购合同
- 正式借款合同文本
- 不锈钢精密加工购销合同
- 放心选购保证
- 详解招标文件的重要内容
- 2023年中国人民银行直属事业单位招聘考试真题
- 2024年湖南土建中级职称-建筑工程《法律法规及技术标准》考试题库(含答案)
- 国开(浙江)2024年《个人理财》形考作业1-4答案
- 个人简历模板(5套完整版)
- 2024-2025学年七年级语文上册第四单元测试卷(统编版2024新教材)
- 拒绝校园欺凌教育主题课件
- 《扣件式钢管脚手架安全技术规范》JGJ130-2023
- 《书愤》PPT课件
- (最新)陕西省建筑工程施工质量验收技术资料管理整编规定及指
- 设立出版物零售企业申请表.doc
- 基于人才战略的企业年金在民办高校中的应用研究
评论
0/150
提交评论