第二十讲Java Applet程序设计

主要内容

初识Java Applet

Java Applet的生命周期

Graphics类和图像图形绘制

Applet中播放声音媒体

初识Java Applet

一个简单的Java Applet示例

import javax.swing.*;

import java.awt.*;

public class FirstApplet extends JApplet{

public void init(){

JLabel l=new JLabel("Applet test.");

l.setFont(new Font("",1,30));

l.setForeground(Color.red);

this.getContentPane().add(l);

}

}

结论:

²Java Applet必继承java.applet.Applet或javax.swing.JApplet。

²Applet的主类必须声明为public

²Applet不需要main()方法。

Icon ii=new ImageIcon(“…”);

JLabel l=new JLabel(ii);

Java Applet的运行

将Applet嵌入网页

如:

Java Applet Test

结论:

²Java Applet须嵌入到HTML页面中由浏览器执行(测试可用java自带的小应用程序察看器appletviewer.exe)

²Applet不分字符方式与图形方式,始终运行在图形方式下。

²Applet适用于客户/服务器环境。Applet驻留在服务器上,但在客户机上执行。

²对Applet有特别的安全性设置,即限制在沙箱中运行

u不允许访问本地资源(禁止运行本地可执行程序、对本地文件读写);

u除了存放Applet的服务器外,Applet不能和其它主机进行通信。

思考

1.Java Applet可以象应用程序一样独立运行吗?

2.Applet设计时必须继承什么类?

3.Java Applet一定是public的吗?

4.设计Applet时需要载入的软件包是?

5.Applet在客户机还是服务器上执行?

6.Applet相比Application,有哪些方面的限制?

7.为什么要对Applet进行功能限制?

Java Applet的生命周期

Applet的运行机制

Applet的生命周期中有四个状态:初始态、运行态、停止态和消亡态。

不同阶段的任务,Applet是调用一系列标准方法来处理和操作的

设计Java Applet的主要任务就是重写这些方法。

生命周期

方法

初始阶段

public voidinit()

运行阶段

public voidstart()

停止阶段

public voidstop()

卸载阶段

public voiddestroy()

Applet的主要方法

init方法

执行时机:页面打开时执行(仅一次)

用途:初始化工作,如:创建对象、初始化变量、设置屏幕背景色、接收页面提供的参数等。

start方法

执行时机:在init后自动调用。页面由不可见到可见时也会执行。

用途:重新初始化变量等工作。

stop方法

执行时机:在用户离开页面时执行。

destroy方法

执行时机:在撤消阶段执行。当applet不再被使用,或浏览器退出的时候,该方法被调用。

用途:init()的逆操作。结束时的收尾工作。

paint方法

public voidpaint(Graphics g)

执行时机:重新刷新页面时。该方法多次发生:

²在start()方法后自动执行。

²程序调用repaint()后执行。

用途:绘制,信息显示。

说明:paint方法执行时会自动创建一个当前页面的Grahpics对象(即把Applet页面看作一个绘图层),可用Grahpics的绘制方法在此绘图层上绘制文字、图形、图像。

练习:写一个简要程序测试各方法的执行时机。(TestLife.java)

思考

1.Applet的生命周期中有哪四个状态?

2.各个状态对应的处理方法是?

3.在init、start、stop、destroy中,哪个是只有一次执行的,哪个可能是多次执行的?

4.在start后会自动执行的一个方法是?

5.stop后,Applet页面是否关闭了?

6.将带有Applet的页面最小化时进入什么状态?

7.将带有Applet的页面由最小化还原时进入什么状态?

8.在Applet中绘制,需要在哪个方法中进行?

Graphics和图形图像绘制

Graphics的常用方法

public void drawString(String str,int x,int y)

将指定的坐标点(x,y)作为左上角,绘制指定文本

public void setFont(Font font)设置字体

public void setColor(Color c)设置前景色

public void drawLine(int x1,int y1,int x2,int y2)

在两个坐标点(x1,y1)与(x2,y2)之间画一直线

public void drawImage(Image p,int x,int y,this)

将指定的坐标点(x,y)作为左上角,绘制指定图像

练习:设计如下图页面显示的applet:(AppletDraw.java)

在Applet中显示图像

Java支持的图像格式有:JPG、GIF、PNG。

例:阅读和理解程序。

import java.awt.*;

import javax.swing.*;

public class ShowImage extends JApplet{

Image image;

public void init(){

image=new ImageIcon("pic.jpg").getImage();;

}

public void paint(Graphics g){

g.drawImage(image,10,10,this);

}

}

说明:也可用JApplet的getImage方法获取Image对象

public Image getImage(URL url,String name)

可通过getCodeBase()方法返回class文件的URL路径

思考

1.什么对象可与一个图像文件相联结?

2.如何获取Image对象?

3.Applet如何显示一个图像?

4.图像可以缩放显示吗?

5.通过Applet的什么方法可返回类文件的URL路径?

6.JFrame窗口可以显示图像吗?

几何图形的绘制*

常用的绘制方法

直线

public voiddrawLine(int x1,int y1,int x2,int y2)

在确定的坐标点之间画线。

椭圆

public void drawOval(int x,int y,int width, int height)

public void fillOval(int x,int y,int width,int height)

(x,y)为外切矩形的左上角坐标。

矩形

平面矩形

public void drawRect(int x, int y, int width, int height)

public void fillRect(int x, int y, int width, int height)

(x,y)为左上角坐标,width和height分别是宽和长的尺寸。

立体矩形

public void draw3DRect(int x,int y,int width,int height, boolean raised)

public void fill3DRect(int x,int y,int width,int height, boolean raised)

raised确定立体矩形是凸出(true)还是凹下(false)。

圆角矩形

public void drawRoundRect(int x, int y, int width,int height,int w,int h)

public void fillRoundRect(int x, int y, int width,int height,int w,int h)

w,h分别是圆角处弧线的宽度和长度。

多边形

给出一组坐标点,再用直线段将这些点依次连接起来。

public void drawPolygon(int xPoints[],int yPoints[],int n)

public void fillPolygon(int xPoints[],int yPoints[],int n)

例:阅读程序,理解以上绘图方法

import javax.swing.*;

import java.awt.*;

public class DrawPicTest extends JApplet{

public void init(){

setBackground(Color.white);

}

public void paint(Graphics g){

g.drawLine(10, 5, 220, 5);

g.drawRect(10, 15, 40, 40);

g.drawRoundRect(60, 15,40,40,12,12);

g.drawOval(110, 15, 60, 40);

g.draw3DRect(180, 15, 40, 40, true);

g.setColor(Color.blue);

g.fillRect(10, 65, 40, 40);

g.setColor(Color.yellow);

g.fillRoundRect(60, 65,40,40,12,12);

g.setColor(Color.gray);

g.fillOval(110, 65, 60, 40);

g.setColor(Color.red);

g.fill3DRect(180, 65, 40, 40, true);

}

}

在Applet中实现声音的播放

Java支持的声音文件格式:.au、.aiff、.wav和三种midi格式

网页打开时自动播放音乐

JApplet类的play()方法可将声音文件的装载与播放一并完成:

public void play(URL url,String name)

如:play(getCodeBase(),”yesterday.mid”);

play(getCodeBase(),"Audio\\yesterday.mid");

练习:修改ShowImage.java,使得网页打开时自动播放音乐。

(音乐文件“yesterday.mid”与类同目录)

问题:

1.音乐播放如何循环进行?

2.能不能对音乐播放进行控制?

声音的播放控制

JApplet提供获取声音文件的方法:

public AudioClipgetAudioClip(URL url,String name)

AudioClip接口提供了可实现播放控制的方法。

void play()

开始播放对象指定声音文件

void loop()

设置为循环播放

void stop()

停止播放对象指定声音文件

例:设计一如下网页播放器,可实现对yesterday.mid的播放控制。音乐的播放、停止、循环播放设置通过单击按钮实现。SoundPlay.java

import javax.swing.*;

import java.awt.event.*;

import java.awt.*;

import java.applet.*;

public class SoundPlay extends JApplet

implements ActionListener{

AudioClip audio;

JLabel title=new JLabel("------------Yesterday Once More -----------");

JButton b1=new JButton("Play");

JButton b2=new JButton("Stop");

JButton b3=new JButton("Repeat");

public void init(){

}

public void actionPerformed(ActionEvent e){

}

public void stop(){

}

}

说明:可以用Applet同时装载几个声音文件一起播放,实现混音重奏效果。

java applet编程_第二十讲 Java Applet程序设计相关推荐

  1. 上海java 开发培训_上海十大java培训

    用Java解决国际化问题 如果应用系统是面向多种语言的,编程时就不得不设法解决国际化问题,包括操作界面的风格问题.提示和帮助语言的版本问题.界面定制个性化问题等. 由于Java语言具有平台无关.可移植 ...

  2. java简单编程_「4」Java简单编程

    1.第一个Java程序 ●Java程序开发步骤: ●通过文本编辑器来编写java代码至扩展名为java的文件中. ●调用编译工具javac.exe来对java源文件进行编译,生成扩展名为class的字 ...

  3. java周志第二周_20165325 2017-2018-2 《Java程序设计》结对编程_第二周:四则运算

    20165325 2017-2018-2 <Java程序设计>结对编程_第二周:四则运算 一.码云链接 1.Git提交日志已经实现一个功能/一个bug修复的注释说明,如图所示: 2.测试代 ...

  4. ev3编程变量模块_英文视频教学翻译-机器人ev3编程学习的第二十讲:举例讲解数据变量模块编...

    机器人ev3编程学习的第二十讲:举例讲解数据变量模块编- Rob Widger (为了容易理解,在原文的翻译时做了修改 by EV3-TOM) 这一节我给大家讲解使用变量模块的编程,这些我喜欢的例子也 ...

  5. 学习笔记:Java 并发编程②_管程

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 配套资料: ...

  6. 学习笔记:Java 并发编程⑥_并发工具_JUC

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 配套资料: ...

  7. 学习笔记:Java 并发编程①_基础知识入门

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 视频下载: ...

  8. 学习笔记:Java 并发编程④_无锁

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 配套资料: ...

  9. Java应用编程_常用类库汇总2(日期类正则表达式国际化程序)

    总览[Java SE] 相关文章链接 [Java应用编程_常用类库汇总1(字符串处理类&&对象克隆&数字操作类库&-)] [Java应用编程_常用类库汇总3(开发支持类 ...

最新文章

  1. Labview-浅谈Labview中VISA的设计
  2. OpenCASCADE:Modeling Data之形状的属性
  3. 1017 Queueing at Bank (25 分)_27行代码AC
  4. [luogu P2590 ZJOI2008] 树的统计 (树链剖分)
  5. TiDB 源码阅读系列文章(二十二)Hash Aggregation
  6. Android tombstone文件是如何生成的
  7. OpenCasCade图元拖动问题
  8. oracle odi 目标数据存储: 临时目标数据存储未与连接关联,ODI知识模块--IKM Oracle Incremental Update...
  9. dopod566使用小参考
  10. dsoframer.ocx java_DSOFramer.ocx 控件使用
  11. process.start打开后没有界面_越狱后安装这些美化插件,让手机变好看
  12. 室内定位常用方法总结
  13. 2016 CCF-CSP 计算机职业资格认证考试 解题报告
  14. 常见服务器故障有哪些?如何预防服务器发生故障?服务器故障后如何恢复数据?
  15. php getimagesize 导致系统变慢
  16. 陈佩斯曾受邀喜剧综艺:被酬劳吓的恍惚好几天
  17. java 微信 jssdk 分享朋友圈_JSSDK微信自定义分享朋友圈
  18. cshop是什么开发语言_学会了 C 语言真的可以开发出很多东西吗?
  19. 打破双亲委派的几种方式
  20. 网站安全之几种常见的网络攻击方式

热门文章

  1. 刷下拉框diyiming好_决斗学院全新版本辅助一次性800号自动切换刷神器
  2. Work20230602
  3. CBoard框架数据集实现--DataProvider
  4. 【音视频】音视频自研对比
  5. 【附源码】计算机毕业设计SSM小区停车计费管理系统
  6. 扩展屏 自定义分辨率方法
  7. JavaScript---动态爱心代码
  8. tomcat修改404页面
  9. 如何将多个快递物流的退回签收件归类为已签收
  10. PC端-拖动表格组件