《图形用户界面》ppt课件

上传人:tia****nde 文档编号:67356850 上传时间:2019-01-07 格式:PPT 页数:171 大小:1.07MB
返回 下载 相关 举报
《图形用户界面》ppt课件_第1页
第1页 / 共171页
《图形用户界面》ppt课件_第2页
第2页 / 共171页
《图形用户界面》ppt课件_第3页
第3页 / 共171页
《图形用户界面》ppt课件_第4页
第4页 / 共171页
《图形用户界面》ppt课件_第5页
第5页 / 共171页
点击查看更多>>
资源描述

《《图形用户界面》ppt课件》由会员分享,可在线阅读,更多相关《《图形用户界面》ppt课件(171页珍藏版)》请在金锄头文库上搜索。

1、1,第9章 图形用户界面,郑 莉,JAVA语言程序设计,2,目录,9.1 Applet 概述 9.2 Applet应用程序接口 9.3 绘图 9.4 Swing基础 9.5 Swing的特点和概念 9.6 Swing组件 9.7 其它Swing特性 9.8 本章小结 (说明:本章部分例题出自java_tutorial_sun),3,9.1 Applet 概述,Java Applet 一种嵌入HTML文档中的Java程序 与Application相比,Applet具有明显的优点 web浏览器提供了运行Applet所需要的许多功能 Applet是在运行时通过网络从服务器端下载的,因而便于软件的发布

2、和及时更新 Applet也有其局限性, 不能在客户机上读写当地文件 也不能连接除它所在的服务器以外的其它机器,4,在浏览器中加载一个Applet,功能是显示一个字符串“This is a Java Applet!” import java.awt.Graphics; import javax.swing.JApplet; public class Ex9_1 extends JApplet public void paint(Graphics g) /重载JApplet类的paint方法 /参数是Graphics类的对象,是由浏览器传递过来的 super.paint(g); /调用其超类JAp

3、plet类的paint方法 g.drawString(“This is a Java Applet!“,25,25); ,9.1 Applet概述(续) 例9_1,Applet概述,5,在NetBeans IDE中运行,9.1 Applet概述(续) 例9_1运行结果,Applet概述,6,编译ex9_1.java产生字节码文件ex9_1.class。接下来就需要编写一个HTML文件ex9_1.html来嵌入ex9_1.class 将ex9_1.html文件和Ex9_1.class文件放在同一个目录下。现在,在浏览器中打开这个HTML文件,当浏览器遇到Applet标记时,就会自动载入指定的cl

4、ass文件,就会实现在屏幕上绘制一串字符的效果,9.1 Applet概述(续) 例9_1运行结果,Applet概述,7,9.2 Applet应用程序接口,JApplet类 一个applet程序需要继承javax.swing包中的JApplet类,也可以继承老的AWT组件中的Applet类, JApplet类属于新的Swing组件 提供了applet在浏览器中运行需要具备的特定方法 浏览器载入时,要依次运行init、start、paint方法 离开浏览器页面时,执行stop 退出浏览器时,执行destroy 提供了所有这些方法的默认实现,所以我们在编写自己的applet时,就可以不必写出全部方法

5、,只要继承这个JApplet,然后重写特定的方法来增加特殊功能,8,9.2 Applet应用程序接口,Applet应用程序接口,9,9.2 Applet应用程序接口(续),Applet应用程序接口,10,import javax.swing.*;. import java.awt.*; public class HelloSwingApplet extends JApplet public void init() JLabel label = new JLabel( “You are successfully running a Swing applet!“); label.setHorizo

6、ntalAlignment(JLabel.CENTER); label.setBorder(BorderFactory.createMatteBorder( 1,1,2,2,Color.black); getContentPane().add(label, BorderLayout.CENTER); ,9.2 Applet应用程序接口(续) HelloSwingApplet.java,Applet应用程序接口,11,9.3 绘图,图形环境和图形对象 颜色和字体 使用Graphics类绘图 使用Graphics2D类绘图,12,9.3.1 图形环境和图形对象,坐标 GUI组件的左上角坐标默认为(

7、0,0) 从左上角到右下角,水平坐标x和垂直坐标y增加。 坐标的单位是象素 Graphics对象 Graphics对象是专门管理图形环境的。Graphics类是一个抽象类 设计一个抽象类Graphics可以给程序员提供一个与平台无关的绘图接口,因而程序员就可以以独立于平台的方式来使用图形。在各个平台上实现的Java系统将创建Graphics类的一个子类,来实现绘图功能,但是这个子类对程序员是透明的,也就是说我们只能看得到Graphics类,却不必关心其实现 在执行paint方法时,系统会传递一个指向特定平台的Graphics子类的图形对象g,绘 图,13,9.3.2 颜色和字体,Java中有关

8、颜色的类是Color类,它在java.awt包中,这个类声明了用于操作Java程序中颜色的方法和常量,绘 图,14,9.3.2 颜色和字体,Font类有关字体控制,在java.awt包中,绘 图,15,9.3.3 使用Graphics类绘图,Graphics类 其对象可以绘制文本、线条、矩形、多边形、椭圆、弧等多种图形,绘 图,18,用各种颜色绘制文字及各种图形 import java.awt.*; import javax.swing.*; public class Ex9_2 extends JFrame public Ex9_2() super( “演示字体、颜色、绘图” ); /调用基

9、类构造方法 setSize( 480, 250 ); /设置窗口大小 setVisible( true ); /显示窗口 public void paint( Graphics g ) super.paint( g ); / call superclasss paint method g.setFont( new Font( “SansSerif“, Font.BOLD, 12 ) ); g.setColor(Color.blue); /设置颜色 g.drawString(“字体ScanSerif,粗体,12号,蓝色“,20,50);,9.3.3 使用Graphics类绘图(续) Ex9_2.

10、java,绘 图,19,g.setFont( new Font( “Serif“, Font.ITALIC, 14 ) ); g.setColor(new Color(255,0,0); g.drawString( “ 字体Serif,斜体,14号,红色“, 250, 50 ); g.drawLine(20,60,460,60); /绘制直线 g.setColor(Color.green); g.drawRect(20,70,100,50); /绘制空心矩形 g.fillRect(130,70,100,50); /绘制实心矩形 g.setColor(Color.yellow); g.drawR

11、oundRect(240,70,100,50,50,50); /绘制空心圆角矩形 g.fillRoundRect(350,70,100,50,50,50); /绘制实心圆角矩形 g.setColor(Color.cyan); g.draw3DRect(20,130,100,50,true); /绘制突起效果空心矩形 g.fill3DRect(130,130,100,50,false); /绘制凹陷效果实心矩形,9.3.3 使用Graphics类绘图(续) Ex9_2.java,绘 图,20,g.setColor(Color.pink); g.drawOval(240,130,100,50);

12、/绘制空心椭圆 g.fillOval(350,130,100,50); /绘制实心椭圆 g.setColor(new Color(0,120,20); g.drawArc(20,190,100,50,0,90); /绘制一段圆弧 g.fillArc(130,190,100,50,0,90); /绘制扇形 g.setColor(Color.black); int xValues=250,280,290,300,330,310,320,290,260,270; int yValues=210,210,190,210,210,220,230,220,230,220; g.drawPolygon(xV

13、alues,yValues,10); /绘制空心多边形 int xValues2=360,390,400,410,440,420,430,400,370,380; g.fillPolygon(xValues2,yValues,10); /绘制实心多边形 ,9.3.3 使用Graphics类绘图(续) Ex9_2.java,绘 图,21,public static void main( String args ) JFrame.setDefaultLookAndFeelDecorated(true); /设置窗口的外观感觉为Java默认 Ex9_2 application = new Ex9_2

14、(); application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE ); 运行结果,9.3.3 使用Graphics类绘图(续) Ex9_2.java运行结果,绘 图,22,9.3.4 使用Graphics2D类绘图,Java2D API 提供了高级的二维图形功能 分布在java.awt、java.awt.image、java.awt.color、java.awt.font、java.awt.geom、java.awt.print和java.awt.image.renderable包中 它能轻松使你完成以下功能: 绘制任何宽度的直线 用渐

15、变颜色和纹理来填充图形 平移、旋转、伸缩、切变二维图形,对图像进行模糊、锐化等操作 构建重叠的文本和图形,绘 图,23,Graphics2D类 要想使用Java2D API,就必须通过一个该类的对象 是Graphics类的抽象子类 事实上,所有的paint方法用于绘图操作的对象实际上是Graphics2D的一个子类实例,该实例传递给paint方法,并被向上转型为Graphics类的实例。要访问Graphics2D功能,必须使用如下语句将传递给paint方法的Graphics引用强制转换为Graphics2D引用: Graphics2D g2d=(Graphics2D)g,9.3.4 使用Graphics2D类绘图(续),绘 图,24,实现例9_1的功能,使用Java2D使文字出现渐变色效果 import java.awt.*; import javax.swing.*; public class Ex9_3 extends JApplet public void paint(Graphics g) super.paint(g); Graphics2D g2d=(Graphics2D)g; g2d.setPaint(new GradientPaint(0,0,Color.

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

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

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