第04章-SWING图形用户界面设计

上传人:我*** 文档编号:137615085 上传时间:2020-07-10 格式:PPT 页数:115 大小:691KB
返回 下载 相关 举报
第04章-SWING图形用户界面设计_第1页
第1页 / 共115页
第04章-SWING图形用户界面设计_第2页
第2页 / 共115页
第04章-SWING图形用户界面设计_第3页
第3页 / 共115页
第04章-SWING图形用户界面设计_第4页
第4页 / 共115页
第04章-SWING图形用户界面设计_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《第04章-SWING图形用户界面设计》由会员分享,可在线阅读,更多相关《第04章-SWING图形用户界面设计(115页珍藏版)》请在金锄头文库上搜索。

1、1,面向对象程序设计,2,概述 常用容器 事件处理 布局设计 基本控制组件,第四章 SWING图形用户界面设计,3,概述,图形用户界面(Graphics User Interface,缩写GUI)是指以图形的显示方式与用户实现交互操作的应用程序界面。Java提供了十分完善的图形用户界面功能,使得软件开发人员可以轻而易举地开发出功能强大、界面友善、安全可靠的应用软件。 发展历史: 命令行图形用户界面,4,概述,在Java语言中,有两个包(java.awt和javax.swing)囊括了实现图形用户界面的所有基本元素,这些基本元素主要包括容器、组件、绘图工具和布局管理器等。 java.awt是ja

2、va1.1用来建立GUI的图形包, “awt”是抽象窗口工具包(Abstract Window Toolkit)的缩写,其中的组件常被称为AWT组件。javax.swing是Java2提出的AWT的改进包,它主要改善了组件的显示外观,增强了组件的控制能力。,5,概述,早期版本的AWT组件 在java.awt包里,包括Button、Checkbox、Scrollbar等,都是Component类的子类 大部分含有native code,所以随操作系统平台的不同会显示出不同的样子,而不能进行更改,是重量级组件(heavyweight components) 没有弹性、缺乏效率,6,概述,较新的Sw

3、ing组件 其名称都是在原来AWT组件名称前加上J,例如JButton、JCheckBox、JScrollbar等,都是JComponent类的子类 Java1.2推出,架构在 AWT 之上,是AWT的扩展而不是取代,AWT仍然是Swing的一个必备补充 完全是由java语言编写的,其外观和功能不依赖于任何由宿主平台的窗口系统所提供的代码,是轻量级组件(lightweight components) 可提供更丰富的视觉感受,被越来越多地使用,7,概述,在Java语言中,用户界面由三部分构成: (1)顶层容器:每个图形用户界面Java程序都必须至少有一个顶层容器,别的组件都必须放在这个顶层容器上

4、才能显现出来。顶层容器有: JFrame,JDialog,浏览器; (2)中间容器:存在的目的仅仅是为了容纳别的组件,使界面有条理,美观,易于控制。中间容器有: JPanel, JScrollPane等 (3)基本控制组件:基本功能是和用户交互信息,而不像前两种组件那样是用来容纳别的组件的。基本控制组件: JLabel、JButton、JCheckBox、JRadioButton、JComboBox、JList、JMenu、 JTexComponent等,8,概述 常用容器 事件处理 布局设计 基本控制组件,第五章 SWING图形用户界面设计,9,常用容器,窗体(JFrame) JFrame是

5、一种具有边框的容器,它是Java Application程序的图形用户界面的最外层容器。 特点: (1)有边框 (2)能被移动、缩放和关闭 (3)作为最外层容器,不能被其它容器所包含 (4)默认布局:边界布局(BorderLayout),10,常用容器,JFrame的继承结构 java.lang.Object java.awt.Component java.awt.Container java.awt.Window java.awt.Frame javax.swing.JFrame 每个包含Swing 组件的主窗口都应用JFrame 来实现,11,常用容器,构造函数 格式:JFrame() 功

6、能:建立一个无标题的Frame。 格式:JFrame(String title) 功能:建立一个标题为title的Frame。 常用方法 String getTitle(); 获取窗口标题 void setTitle(String s); 设置窗口标题 void setVisible(boolean b); 设置窗口可见性 void setBounds(int a, int b, int width, int height); 设置窗口位置和大小 void setBackground(Color c); 设置窗口背景颜色 void pack(); 用紧凑方式显示窗口 void setSize(

7、int width , int height); 设置窗口大小,12,常用容器,创建窗体有两种方式: (1)直接创建JFrame的对象,适合于简单窗体; (2)继承JFrame类,在继承类中编写代码对窗体进行详细的刻画,适合窗体比较复杂的情况。 大多数情况下开发人员都用第二种方法。 注意:窗体创建以后是不可见的,必须调用Window类的show( )方法或Component类的setVisible( )方法显示该窗体。 见以下两个例子:,13,常用容器,import javax.swing.*; public class Sample5_1 public static void main(St

8、ring args) / 创建一个窗体对象 JFrame myWindow = new JFrame(); / 向窗体中添加一个标签 myWindow.add(new JLabel(这是一个窗体,演示了JFrame类的基本功能); / 设置窗体的标题 myWindow.setTitle(自定义的窗体); / 设置窗体的大小 myWindow.setBounds(80,80,480,180); / 根据接收的boolean设置窗体是否可以调整大小 myWindow.setResizable(false); / 设置窗体的可见性 myWindow.setVisible(true); ,直接创建JF

9、rame的对象,14,常用容器,import javax.swing.*; class MyWindow extends JFrame / 定义无参构造函数 public MyWindow() public MyWindow(boolean b) / 向窗体中添加一个标签 this.add(new JLabel(这是一个窗体,演示了JFrame类的基本功能); / 设置窗体的标题 this.setTitle(自定义的窗体); / 设置窗体的大小 this.setBounds(80,80,480,180); / 根据接收的boolean设置窗体是否可以调整大小 this.setResizable

10、(b); / 设置窗体的可见性 this.setVisible(true); public class Sample5_2 public static void main(String args) / 创建MyWindow类的对象,并传递False值使得窗体不能调整大小 new MyWindow(false); ,继承JFrame类,15,常用容器,import javax.swing.*; public class MyWindow extends JFrame / 定义无参构造函数 public MyWindow() public MyWindow(boolean b) / 向窗体中添加一

11、个标签 this.add(new JLabel(这是一个窗体,演示了JFrame类的基本功能); / 设置窗体的标题 this.setTitle(自定义的窗体); / 设置窗体的大小 this.setBounds(80,80,480,180); / 根据接收的boolean设置窗体是否可以调整大小 this.setResizable(b); / 设置窗体的可见性 this.setVisible(true); public static void main(String args) new MyWindow(false); ,16,常用容器,对话框(JDialog) 对话框(JDialog)与J

12、Frame一样,都是有边框和标题的独立使用的容器,不能被其它容器所包容。 与JFrame的不同之处:不能作为程序的最外层容器,它必须属于某个JFrame,由该JFrame弹出。 对话框可以接受用户的输入,实现与用户的交互作用。,17,常用容器,JDialog的继承结构 java.lang.Object java.awt.Component java.awt.Container java.awt.Window java.awt.Dialog javax.swing.JDialog 要实现对话框,需要从JDialog派生一个类,18,常用容器,构造函数 JDialog(Frame owner) 功

13、能:建立无标题的通用对话框,它属于窗口owner,可以响应其它窗口。 JDialog(Frame owner,boolean d) 功能:建立无标题的通用对话框,它属于窗口owner,若d为true则不能响应其它窗口。 JDialog(Frame owner,String txt) 功能:建立标题为txt的通用对话框,它属于窗口owner,可以响应其它窗口。 JDialog(Frame owner,String txt,boolean d) 功能:建立标题为txt的通用对话框,它属于窗口owner,若d为true则不能响应其它窗口。,19,常用容器,常用方法 表列出了通用对话框JDialog类

14、的几个常用的方法。,20,常用容器,面板(JPanel) 无边框容器 特点: (1)最简单的一种容器 (2)没有边框 (3)不能被移动、缩放和关闭 (4)通常作为一个容器组件被加到其它容器中,如JApplet,JFrame等 (5)默认布局:顺序布局(FlowLayout) JApplet是JPanel的子类,是一种特殊的JPanel,21,常用容器,JPanel常用方法:,22,概述 常用容器 事件处理 布局设计 基本控制组件,第五章 SWING图形用户界面设计,23,事件处理,界面设计 (静态) 界面动起来 通过事件触发对象的响应机制 一些常见的事件包括: 移动鼠标 单双击鼠标各个按钮 单

15、击按钮 在文本字段输入 在菜单中选择菜单项 在组合框中选择、单选和多选 拖动滚动条 关闭窗口 ,24,委托事件模型中传递及处理事件对象的流程,事件处理,25,事件处理,编写事件处理程序时,要注意三个概念 事件源 与用户进行交互的GUI组件,表示事件来自于哪个组件或对象 比如要对按钮被按下这个事件编写处理程序,按钮就是事件源 事件监听器 负责监听事件并做出响应 一旦它监视到事件发生,就会自动调用相应的事件处理程序作出响应 事件对象 封装了有关已发生的事件的信息 例如按钮被按下就是一个要被处理的事件,当用户按下按钮时,就会产生一个事件对象。事件对象中包含事件的相关信息和事件源,26,事件处理,事件

16、的层次结构图:,27,事件处理,程序员应完成的两项任务 实现事件监听的接口类 为事件源注册一个事件监听器 实现事件处理方法,28,事件处理,一个事件源可以注册多个事件监听器,每个监听器又可以对多种事件进行相应,例如一个JFrame事件源上可以注册 窗口事件监听器,响应 窗口关闭 窗口最大化 窗口最小化 鼠标事件监听器,响应 鼠标点击 鼠标移动,29,事件处理,事件监听器 是一个对象,通过事件源的addListener方法被注册到某个事件源上 不同的Swing组件可以注册不同的事件监听器 一个事件监听器中可以包含有对多种具体事件的专用处理方法 例如用于处理鼠标事件的监听器接口MouseListener中就包含有对应于鼠标压下、放开、进入、离开、敲击五种事件的相应方法mousePressed、mouseReleased、mouseEntered、mouseExited、mouseClicked,这五种方法都需要一个事件对象作为参数,30,事件处理,通常我们用到的

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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