《第九章Java小应用程序设计.ppt》由会员分享,可在线阅读,更多相关《第九章Java小应用程序设计.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第九章第九章 JavaJava小小应用程序设计应用程序设计9.1 小应用程序简介小应用程序简介9.2 小应用程序的执行过程小应用程序的执行过程9.3小应用程序中的组件和图形绘制小应用程序中的组件和图形绘制9.1 小应用程序简介小应用程序简介小应用程序就是使用小应用程序就是使用Java语言编写的一段代码,它语言编写的一段代码,它可以在浏览器环境中运行。它与可以在浏览器环境中运行。它与Application的区别的区别主要在于其执行方式的不同。主要在于其执行方式的不同。Java小应用程序小应用程序的创建的创建java.applet.Appletimport java.applet.*;import
2、 java.applet.*;public classpublic class HelloWorld HelloWorld extends Applet extends Appletjava.swing.JAppletimportimport javax javax.swing.*;.swing.*;public classpublic class HelloWorld HelloWorld extends extends JApplet JApplet 9.1 小应用程序简介小应用程序简介import java.applet.Applet;import java.awt.Graphics;p
3、ublic class WelcomeApplet extends Applet public void paint(Graphics g)g.drawString(Welcome to Java Programming!,25,25);9.1 小应用程序简介小应用程序简介/WelcomeApplet.javaimport javax.swing.JApplet;import java.awt.Graphics;public class WelcomeApplet extends JApplet public void paint(Graphics g)g.drawString(Welcome
4、 to Java Programming!,25,25);9.1 小应用程序简介小应用程序简介 9.1 小应用程序简介小应用程序简介-类的继承关系类的继承关系 java.lang.Object java.awt.Component java.awt.Container java.awt.Window java.awt.Panel java.awt.Frame java.applet.Applet java.swing.JFrame java.swing.JApplet9.2 小应用程序的执行过程小应用程序的执行过程浏览器载入要访问的浏览器载入要访问的HTML文件的文件的URL地址。地址。浏览器
5、装入浏览器装入HTML文件文件浏览器载入小应用程序的类字节代码浏览器载入小应用程序的类字节代码启动启动Java虚拟机执行虚拟机执行Applet。9.2 小应用程序的执行过程小应用程序的执行过程-生命周期生命周期 图标化或浏览器装入另一页图标化或浏览器装入另一页 第一次装入第一次装入 运行运行 运行运行stop()stop()运行运行init()start()init()start()从图标恢复或重新装入从图标恢复或重新装入 此页时运行此页时运行start()start()运运 浏浏 行行 览览 destroy()destroy()器器 关关 闭闭初初 始始态态(瞬瞬态)态)运运 行行态态停停
6、止止态态消消 亡亡态态9.2 小应用程序的执行过程小应用程序的执行过程-主要方法主要方法import java.import java.awtawt.Graphics;.Graphics;import java.applet.Applet;import java.applet.Applet;public class Simple extends Appletpublic class Simple extends Appletpublic void init()public void init()public void start()public void start()public void
7、stop()public void stop()public void destroy()public void destroy()public void paint(Graphics g)public void paint(Graphics g)9.2 小应用程序的执行过程小应用程序的执行过程-主要方法主要方法paint()虽不在生命周期内虽不在生命周期内,但它的作用相当但它的作用相当于于applet的灵魂的灵魂Java.applet.Appletpublic void init()public void destroy()public void start()public void sto
8、p()public void paint(Graphics g)/WelcomeApplet2.javaimport javax.swing.JApplet;import java.awt.Graphics;public class WelcomeApplet2 extends JApplet public void paint(Graphics g)g.drawString(Welcome to,25,25);g.drawString(Java Programming!,25,40);9.2 小应用程序的执行过程小应用程序的执行过程9.3 小应用程序中的组件和图形绘制小应用程序中的组件和图形
9、绘制小应用程序中的组件小应用程序中的组件AppletApplet中的中的AWTAWT组件组件AppletApplet类类也也是是一一种种面面板板容容器器,缺缺省省的的布布局局管管理理器器是是FlowLayoutFlowLayout。因因此此,可可以以直直接接对对AppletApplet加加入入组组件件或或用用setLayoutsetLayout()()方法改变布局管理器。方法改变布局管理器。JApplet中的中的SwingSwing组件组件与与AppletApplet不不同同,不不能能直直接接对对JAppletJApplet加加入入组组件件或或用用setLayoutsetLayout()()方
10、方法法改改变变布布局局管管理理器器,必必须须先先取取得得一一个个内内容容面面板板(ContentPaneContentPane),),再对内容面板加入组件或改变布局。再对内容面板加入组件或改变布局。去去除除组组件件、设设置置布布局局管管理理器器等等操操作作都都是是针针对对内内容容面面板板而而不不是是直直接接针针对对JAppletJApplet,内内容容面面板板缺缺省省的的布布局局管管理理器器为为BorderLayoutBorderLayout。9.3 小应用程序中的组件和图形绘制小应用程序中的组件和图形绘制JApplet中的图形绘制中的图形绘制在在SwingSwing的的JAppletJApp
11、let中,如果需要绘制图形、图像或文本,同中,如果需要绘制图形、图像或文本,同样要先将图形、图像或文本绘制在画板上,然后再将画板添样要先将图形、图像或文本绘制在画板上,然后再将画板添加到内容面板或直接把画板加到内容面板或直接把画板置为置为JAppletJApplet的内容面板。的内容面板。在画板上绘制文本或图形、图像时,需要做如下定义:在画板上绘制文本或图形、图像时,需要做如下定义:classclass MyPanel MyPanel extends extends JPanel JPanel public voidpublic void paintComponent paintCompone
12、nt(Graphics g)(Graphics g)super.super.paintComponentpaintComponent();();/绘制代码绘制代码 paintComponentpaintComponent是是JComponentJComponent类提供的方法,其功能类提供的方法,其功能与与paintpaint方法方法类类似似。9.3 小应用程序中的组件和图形绘制小应用程序中的组件和图形绘制JApplet中的图形绘制中的图形绘制在在SwingSwing中应该使用中应该使用paintComponentpaintComponent方法而不是方法而不是paintpaint方法绘图。方
13、法绘图。如程序中需要重新绘制,就调用如程序中需要重新绘制,就调用repaintrepaint方法,方法,repaintrepaint方法将引起系统调用所有组件的方法将引起系统调用所有组件的paintComponentpaintComponent方法。方法。9.3 小应用程序中的组件和图形绘制小应用程序中的组件和图形绘制import java.awt.*;import java.awt.event.*;import javax.swing.*;class ArcPanel extends JPanel int startAngle=0;int valueOfAngle=45;boolean fi
14、lled=false;public void paintComponent(Graphics g)super.paintComponent(g);Rectangle r=getBounds();JApplet的的Swing图形绘制(例:画弧)图形绘制(例:画弧)9.3 小应用程序中的组件和图形绘制小应用程序中的组件和图形绘制g.setColor(Color.red);if(filled)g.fillArc(0,0,r.width-1,r.height-1,startAngle,valueOfAngle);elseg.drawArc(0,0,r.width-1,r.height-1,startA
15、ngle,valueOfAngle);g.setColor(Color.black);g.drawLine(0,r.height/2,r.width,r.height/2);g.drawLine(r.width/2,0,r.width/2,r.height);g.drawLine(0,0,r.width,r.height);g.drawLine(r.width,0,0,r.height);9.3 小应用程序中的组件和图形绘制小应用程序中的组件和图形绘制public void redraw(boolean filled,int start,int end)this.filled=filled;t
16、his.startAngle=start;this.valueOfAngle=end;repaint();class ArcControls extends JPanel implements ActionListenerTextField s;TextField e;ArcPanel Panel;9.3 小应用程序中的组件和图形绘制小应用程序中的组件和图形绘制public ArcControls(ArcPanel panel)Button b=null;this.panel=panel;add(s=new TextField(“0”,4);add(e=new TextField(“45”,4
17、);b=new Button(“Fill”);b.addActionListener(this);add(b);b=new Button(“Draw”);b.addActionListener(this);add(b);9.3 小应用程序中的组件和图形绘制小应用程序中的组件和图形绘制public void actionPerformed(ActionEvent ev)String label=ev.getActionCommand();panel.redraw(label.equals(“Fill”),Integer.parseInt(s.getText().trim(),Integer.pa
18、rseInt(e.getText().trim();public class ArcApplet extends JAppletpublic void init()Container contentPane=getContentPane();setLayout(new BorderLayout();ArcPanel p=new ArcPanel();contentPane.add(p,“Center”);contentPane.add(new ArcControls(p),“South”);小结小结小应用程序的生命周小应用程序的生命周期期小应用程序中的主要方小应用程序中的主要方法法小应用程序中的图形绘小应用程序中的图形绘制制习题习题1.简述小应用程序的生命周简述小应用程序的生命周期期和主要方和主要方法法。2.简述小应用程序的创建方法。简述小应用程序的创建方法。3.具体谈谈小应用程序和应用程序的区别。具体谈谈小应用程序和应用程序的区别。4.图形绘图形绘制制