《JAVA程序设计教程》电子教案 第7章 图形用户界面的设计与实现

上传人:E**** 文档编号:89401223 上传时间:2019-05-24 格式:PPT 页数:73 大小:548.50KB
返回 下载 相关 举报
《JAVA程序设计教程》电子教案 第7章  图形用户界面的设计与实现_第1页
第1页 / 共73页
《JAVA程序设计教程》电子教案 第7章  图形用户界面的设计与实现_第2页
第2页 / 共73页
《JAVA程序设计教程》电子教案 第7章  图形用户界面的设计与实现_第3页
第3页 / 共73页
《JAVA程序设计教程》电子教案 第7章  图形用户界面的设计与实现_第4页
第4页 / 共73页
《JAVA程序设计教程》电子教案 第7章  图形用户界面的设计与实现_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《《JAVA程序设计教程》电子教案 第7章 图形用户界面的设计与实现》由会员分享,可在线阅读,更多相关《《JAVA程序设计教程》电子教案 第7章 图形用户界面的设计与实现(73页珍藏版)》请在金锄头文库上搜索。

1、学习导读 首先,我们学习一些基本的图形编程知识,包括窗口的显示及外观设置、在窗口中显示文字和图像等; 接下来,介绍Java的事件处理机制,例如如何在程序中接收并处理如键盘按键和鼠标点击等“事件”; 最后,系统地介绍图形用户界面中常用组件的用法,如布局管理器、文本框、复选框、菜单、对话框等。,第七章 图形用户界面的设计与实现,教学重点与难点:,框架的组成及外观 在框架中显示文本和图形 字体和颜色的设置 Java的事件处理机制 窗口事件、焦点事件、键盘事件、鼠标事件的处理 Swing各种组件的用法,7.1 图形用户界面概述,Java1.0的出现带来了抽象窗口工具箱(AWT)。设计目标是希望构建一个

2、通用的GUI,使得利用它编写的程序能够运行在所有的平台上,以实现Sun公司提出的口号“一次编写,随处运行”。 在Java1.2中,Sun公司推出了新的用户界面库:Swing。相对AWT来说,Swing功能更强大、使用更方便,它的出现使得Java的图形用户界面上了一个台阶。 但是,Swing并没有代替AWT。在Java1.1中,AWT事件处理模型有了根本改变。Swing使用的仍然是Java1.1的事件处理模型。,7.2 简单图形用户界面,7.2.1 第一个图形用户界面,在Java中,顶层窗口称为框架。在AWT库中,对应于框架的类是Frame,在Swing库中,相应的类是JFrame。JFrame

3、类扩展了Frame类。大部分AWT组件在Swing中都有等价的组件,它们在表示形式上差一个“J”。 框架是一个容器,我们可以在这个容器中放入其他一些图形用户界面组件,如按钮、菜单等,从而组成一个功能完善的程序。,【例7.1】 显示一个空框架 import javax.swing.*; public class FirstFrame public static void main(String args) SimpleFrame frame = new SimpleFrame(); /设置用户关闭框架时的响应动作 frame.setDefaultCloseOperation(JFrame.EXI

4、T_ON_CLOSE); /显示该框架 frame.show(); class SimpleFrame extends JFrame public SimpleFrame() /设置框架大小 setSize(WIDTH, HEIGHT); public static final int WIDTH = 300; public static final int HEIGHT = 200; ,运行结果,7.2.2 框架外观,JFrame类的继承层次图,Component类是所有GUI对象的祖先,Window类是Frame类的父类,JFrame类直接从Frame继承而来。对于框架外观的操作比较重要的

5、方法如下: setIconImage窗口最小化(在Java中称为图标化)时,把一个Image对象用作图标。 setTitle设置窗口中标题栏的文字。 setResizable设置用户是否可以改变框架大小。 dispose方法关闭窗口,并回收该窗口的所有资源。 setLocation设置组件的位置。 setBounds重新设置组件的大小和位置。,【例7.2】 框架外观的设置 设置具有以下特征的框架: 它的高度和宽度为整个屏幕的1/3; 自定义窗口的标题和图标; 窗口的大小不可变。 程序代码见FrameSizeSet.java。运行结果如下:,图标,标题,最大化按钮失效,7.2.3 在框架中显示信

6、息,JFrame包含了四个窗格:RootPane、LayeredPane、GlassPane和ContentPane。如果需要将一些图形用户界面元素加入到框架中,我们需要在面板组件(JPanel)中进行绘制,然后将该面板组件加入到框架的内容窗格(ContentPane)中。相应的代码如下: /得到JFrame的内容窗格对象 Container contentPane = getContentPane(); Component c = .; /将组件加入到内容窗格中 contentPane.add(c); 面板JPanel类本身是容器,它可以容纳其他图形用户界面元素,如按钮、菜单等。,为了在面板

7、中进行绘制,需要重载JComponent类的paintComponent方法。 class MyPanel extends Jpanel public void paintComponent(Graphics g) super.paintComponent(g); ./相关的绘制代码 paintComponent方法是自动执行的,当窗口需要被重新绘制时,如用户缩放窗口,或还原已最小化的窗口时,系统就会自动调用该方法。 在框架中显示文本信息的方法: g.drawString(text, x, y),【例7.3】 在框架中显示信息 程序代码见HelloWorld .java。运行结果如下:,7.2

8、.4 文本和字体,通过Font类对象设置字体。 Font StringFont = new Font (“宋体”, Font.ITALIC, 20 ); 字体风格有以下几种选项: Font.PLAIN /常规 Font.BOLD /加粗 Font.ITALIC /倾斜 不同的系统中安装了不同的字体,为了得到本系统中所有已安装的字体,我们可以通过GraphicsEnvironment类的getAvailableFontFamilyNames方法来实现。该方法返回一个字符串数组,数组内包含所有可用的字体名。 【例7.4】显示系统中所有字体名。程序见ListFonts.java,【例7.5】字体设置

9、 采用“宋体”显示字符串“你好,Java!”,字体风格为加粗、倾斜,大小为20点。 程序代码见FontSet.java。运行结果如下:,7.2.5 绘制简单图形,利用Graphics类提供的一些方法进行简单图形的绘制。如:drawLine、drawPolyLine、drawPolygon、drawArc。 drawLine用来画线,调用格式: void drawLine(int x1, int y1, int x2, int y2) (x1, y1)和(x2, y2)为线的两个端点。 drawPolygon用来绘制多边形,调用格式: void drawPolygon(Polygon p) 参数

10、是多边形对象Polygon ,先定义Polygon对象,然后将点加入到该对象中,然后利用drawPolygon进行多边形的绘制: Polygon p = new Polygon; p.addPoint(x1, y1); p.addPoint(x2, y2); . g.drawPolygon(p);,【例7.6】简单图形的绘制 直线,弧,多边形的绘制。 程序代码见SimpleDraw.java。运行结果如下:,Java提供了矩形、圆角矩形、椭圆等基本形状的绘制方法: 矩形: void drawRect(int x, int y, int width, int height) 圆角矩形: void

11、 drawRoundRect(int x, int y, int width, int height, int arcWidth,int arcHeight) 椭圆: void drawOval(int x, int y, int width, int height) Java还提供了方便的填充封闭图形的方法,只需要将前面介绍的方法中的draw改为fill即可。如: void fillRect(int x, int y, int width, int height) void fillRoundRect(int x, int y, int width, int height, int arcW

12、idth,int arcHeight) void fillOval(int x, int y, int width, int height),7.2.6 颜色,Graphics类提供了与颜色相关的方法: getColor返回当前颜色设置。 setColor设置当前颜色。 setColor方法的调用格式为: void setColor(Color c) 我们可以选用Color类提供的13种标准颜色的预定义常数,也可以采用Color构建器来创建Color对象: Color(int redness, int greenness, int blueness) 参数redness,greenness,b

13、lueness分别表示红、绿、蓝的值,它们的值在0至255范围内。以下是颜色使用的例子: g.setColor(Color.green); g.drawString(“你好!”, 100, 100); g.setColor(new Color(128, 0, 128); /自定义颜色 g.drawString(“你好!”, 100, 200);,JFrame类的超类Component类提供的颜色操作的相关方法: setBackground设置背景色。 setForeground设置在组件上进行绘制的默认颜色。 【例7.7】 颜色设置 设置图形颜色,将框架背景颜色设置为桌面的颜色。 程序代码见C

14、olorRect.java。运行结果如下:,7.2.7 图像,通过Graphics类提供的drawImage方法实现图像的显示: public void paintComponent(Graphics g) . g.drawImage(image, x, y, null); 参数image封装了要显示的图像文件。通过Toolkit类的静态getDefaultToolkit方法,可以读取GIF文件和JPEG文件: String name = “test.gif”; Image image = Toolkit.getDefaultToolkit().getImage(name); 通过以上代码,可

15、以得到一个本地图像文件,如果要在网络上得到一个图像文件,必须使用URL类。相应的代码如下: URL url = new URL(“http:/ Image image = Toolkit.getDefaultToolkit().getImage(url);,【例7.8】显示图像 从本地加载一幅图像,并在窗口的中间显示。 程序代码见ImageShow.java。运行结果如下:,7.3 事件处理,7.3.1 事件处理原理,如果用户在用户界面执行了一个动作,这将导致一个事件的发生。事件是描述发生了什么的对象。在Java中,定义了各种不同类型的事件类,用来描述各种类型的用户操作。 事件是由事件源产生的

16、,事件的产生者称为事件源。例如,在Button组件上点击鼠标会产生以这个Button为源的一个事件:ActionEvent。 事件源拥有自己的方法,我们通过它向其注册事件监听器。事件监听器是一个类的实例,这个类实现了一个特殊的接口,称为Lintener interface。当事件源产生了一个事件以后,事件源就会发送通知给相应的事件监听器,监听器对象根据事件对象内封装的信息,决定如何响应这个事件。,我们可以通过以下方法来注册监听器对象: eventSourceObject.addEventListener(eventListenerObject); 以按钮类对例: MyActionListener listener = .; JButton button = new JButton(”提交”); button.addActionListener(listener); 监听器对象l

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

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

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