NJUPT JAVA语言 小应用程序Applet设计
2015-08-13 15:13
477 查看
一、 实验目的和要求
要求学生能在学习和理解课堂学习内容中JAVA小应用程序的基础上,通过实验,培养学生将JAVA小应用程序相关知识点(包括JAVA Applet和低级事件处理模型)有机结合,设计基于WEB浏览器的小应用程序的能力。
实验内容:
设计和编写一个可以用鼠标操作的Applet小应用程序和相应的HTML页面,观察Applet的执行过程,测试程序鼠标用户交互操作的效果。
二、实验代码
package think;
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class java_exp_02applet extends Applet implements MouseListener{
AudioClip sound;
private int mouseX =25;
private int mouseY =25;
@Override
public void init() {
super.init();
sound = getAudioClip(getCodeBase(), "think/think.au");
addMouseListener(this);
}
@Override
public void start() {
// TODO Auto-generated method stub
super.start();
sound.loop();
}
@Override
public void stop() {
// TODO Auto-generated method stub
super.stop();
sound.stop();
}
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g);
g.drawString("mouse position", mouseX, mouseY);
}
public void mousePressed (MouseEvent evt)
{
mouseX= evt.getX();
mouseY = evt.getY();
repaint();
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}<strong>
</strong>
三、界面
四、实验小结
整体的思路:
* 在鼠标点击之后,在点击的位置输出一段话“mouse position”。由于涉及监听鼠标的操作,所以用了接口的方式 implements MouseListener,所以必须实现mouse的几个方法,在mousePressed()方法里改变坐标的位置,调用repaint()函数,更新鼠标的位置。
鼠标位置的两个私有变量,在init()里初始化。
遇到的问题和解决的方法:
*在eclipse里运行好了之后,浏览器里面打不开,后来发现是html里的applet闭合标签写错了。
* 之后在chrome里运行,需要自动安装一下插件,否则不能支持。
* 一开始想插入图片的时候,由于我把java文件和图片放在一个目录里,所以,直接把路径设置为了相对路径“thinkimage.png”,发现显示不出来。重新阅读了一下javac的源码再加一层目录“think/thinkimage.png”,成功。
*额外的想放一首歌,后来才知道,audioclip只支持au格式的音乐。
要求学生能在学习和理解课堂学习内容中JAVA小应用程序的基础上,通过实验,培养学生将JAVA小应用程序相关知识点(包括JAVA Applet和低级事件处理模型)有机结合,设计基于WEB浏览器的小应用程序的能力。
实验内容:
设计和编写一个可以用鼠标操作的Applet小应用程序和相应的HTML页面,观察Applet的执行过程,测试程序鼠标用户交互操作的效果。
二、实验代码
package think;
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class java_exp_02applet extends Applet implements MouseListener{
AudioClip sound;
private int mouseX =25;
private int mouseY =25;
@Override
public void init() {
super.init();
sound = getAudioClip(getCodeBase(), "think/think.au");
addMouseListener(this);
}
@Override
public void start() {
// TODO Auto-generated method stub
super.start();
sound.loop();
}
@Override
public void stop() {
// TODO Auto-generated method stub
super.stop();
sound.stop();
}
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g);
g.drawString("mouse position", mouseX, mouseY);
}
public void mousePressed (MouseEvent evt)
{
mouseX= evt.getX();
mouseY = evt.getY();
repaint();
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}<strong>
</strong>
三、界面
四、实验小结
整体的思路:
* 在鼠标点击之后,在点击的位置输出一段话“mouse position”。由于涉及监听鼠标的操作,所以用了接口的方式 implements MouseListener,所以必须实现mouse的几个方法,在mousePressed()方法里改变坐标的位置,调用repaint()函数,更新鼠标的位置。
鼠标位置的两个私有变量,在init()里初始化。
遇到的问题和解决的方法:
*在eclipse里运行好了之后,浏览器里面打不开,后来发现是html里的applet闭合标签写错了。
* 之后在chrome里运行,需要自动安装一下插件,否则不能支持。
* 一开始想插入图片的时候,由于我把java文件和图片放在一个目录里,所以,直接把路径设置为了相对路径“thinkimage.png”,发现显示不出来。重新阅读了一下javac的源码再加一层目录“think/thinkimage.png”,成功。
*额外的想放一首歌,后来才知道,audioclip只支持au格式的音乐。
相关文章推荐
- 【转】Android 之 下拉框(Spinner)的使用
- android—sqlite
- Unity答疑(一)
- android工程更改api版本
- Android源码学习之ListView的复用回收机制剖析.
- android的序列化接口Parcelable
- cocos2dx win32版本添加icon图标
- Android之Dialog详解
- android ant 打包error
- Android Bundle对象传值
- Android模仿iPhone View旋转刷新数据动画详解
- IOS UIWebView与JavaScript交互实现Web App
- iOS支付宝集成遇到的问题
- iOS 获取Wifi的SSID及MAC地址
- ios即时通讯客户端开发之-mac上搭建openfire服务器
- IOS开发之----NSDictionary,JSON和XML互相转换
- 【转】Android通过JNI调用驱动程序(完全解析实例)
- Android 4.0以上简单实现倒计时按钮
- iOS8扩展插件Extension的开发
- 【AutoMapper官方文档】DTO与Domin Model相互转换(下)