Java多线程与Applet.doc
文本预览下载声明
安徽师范大学
数计学院 实验报告
专业名称 11计科
课程 JAVA高级程序设计
实验名称 多线程与Applet
姓 名
学 号 110704012
一、实验目的
掌握多线程程序和小应用程序设计方法。
二、实验内容
1应用多线程技术设计一个如下功能的程序:在窗体工作区域有10个小鸟图像在独立运动,每个小鸟受控于一个线程,如果某个小鸟与其它小鸟碰撞,则分别向反方向运动。
设计一个小应用程序,该程序能选择自由绘画,自由画椭圆,自由画直线。
三. 实验过程和步骤
(作业要求:程序源码及运行结果截图,该文档文件名为你的姓名加上你的学号)
多线程程序
Cage.java
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Cage extends Frame implements ActionListener {
Button quit = new Button(Quit);
Button start = new Button(Start);
Button stop = new Button(Stop);
Bird birds[] = new Bird[10];
public Cage() {
super(Cage with Birds);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setLayout(new FlowLayout());
add(quit);
quit.addActionListener(this);
add(start);
start.addActionListener(this);
add(stop);
stop.addActionListener(this);
validate();
setSize(300, 300);
setVisible(true);
for (int i = 0; i birds.length; i++) {
int x = (int) (getSize().width * Math.random());
int y = (int) (getSize().height * Math.random());
birds[i] = new Bird(this, x, y);
}
for (int i = 0; i birds.length - 1; i++) {
for (int j = i + 1; j birds.length; j++) {
int xx = Math.abs(birds[i].x - birds[j].x);
int yy = Math.abs(birds[i].y - birds[j].y);
if (xx = 30 yy = 40) {
int x = (int) (getSize().width * Math.random());
int y = (int) (getSize().height * Math.random());
birds[i] = new Bird(this, x, y);
}
}
}
}
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == stop)
for (int i = 0; i birds.length; i++)
birds[i].halt();
if (ae.getSource() == start)
for (int i = 0; i birds.length; i++) {
birds[i].halt();
birds[i] = new Bird(this, birds[i].x, birds[i].y);
}
if
显示全部