利用MyEclipse创建一个applet小应用程序

1.打开MyEclipse创建一个web项目 

2.项目名上右键点击创建一个applet

3.编写applet程序内容

4.运行

a.可以直接在点击窗体上的运行按钮

b.也可以到文件目录创建一个html文件嵌入编译后的.class文件,在cmd中用appletviewer  *.html运行(class文件路径要整对,最好使用缺省包)


例子

applet文件  实现余弦函数曲线图


import java.applet.Applet;
import java.awt.Graphics;

public class First extends Applet {
	int x,y;
	public void paint(Graphics g) {
         //画x轴、y轴
		for(x=0;x<=750;x+=1)
		{
			g.drawString("·",x,200);
			if(x<=385) g.drawString("·",360,x);
		}
		g.drawString("Y",330,20);
         //画y轴箭头
		for(x=360;x<=370;x+=1)
		{
			g.drawString("·",x-10,375-x);
			g.drawString("·",x,x-355);
		}
         //画x轴箭头
		g.drawString("X",735,230);
		for(x=740;x<=750;x+=1)
		{
			g.drawString("·",x,x-550);
			g.drawString("·",x,950-x);
		}
         //画cox()曲线
		for(x=0;x<=720;x+=1)
		{
			double a=Math.cos(x*Math. PI/180+Math.PI);
			y=(int)(200+80*a);				//放大80倍并向下平移200个像素
			g.drawString("·",x,y);
		}
	}
	
}

html文件 (文件名任意,使用appletviewer  *.html运行)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head><title>余弦曲线测试</title></head>
<body> 
		<p>
		<!--调用First字节码文件 -->
		<applet code="First.class" width="900" height="600"></applet>
</body>
</html>  


前面介绍的余弦曲线的绘制,我们看到的是一个完整的静态图形,能否动态地展现绘制的过程?答案是肯定的,我们可以采用线程的方式来实现,参考代码如下:

import java.applet.Applet;
import java.awt.Graphics;

public class First extends Applet implements Runnable{//通过实现Runnable接口实现线程操作
	int x,y;
	double a;
	int xpos=0;
	Thread runner;
	boolean painted=false;
	
	public void init() 					//Applet创建即启动执行,坐标初始化
	{
		Graphics g=getGraphics();		//画画之前,必须先取得画笔
		for(x=0;x<=750;x+=1)			//画x轴
		{
		  g.drawString("·",x,200);
		  if(x<=385) g.drawString("·",360,x);
		  
		}
		g.drawString("Y",330,20);		//画y轴
		for(x=360;x<=370;x+=1)			//画y轴箭头
		{
		  g.drawString("·",x-10,375-x);
		  g.drawString("·",x,x-355);
		}
		g.drawString("X",735,230);
		for(x=740;x<=750;x+=1)				//画x轴箭头
		{
		  g.drawString("·",x,x-550);
		  g.drawString("·",x,950-x);
		}
	}

	public void start() 					//Applet创建后自启动方法
	{
		if(runner==null){
			runner=new Thread(this);		//通过Thread类来启动Runnable
			runner.start();					//线程启动
		}
	}

	public void stop() 						//Applet生命周期结束后自启动方法
	{
		if(runner!=null){
			runner=null;					//结束线程
		}
	}

	public void run() 						//线程运行方法
	{
		while(true){
			for(xpos=0;xpos<900-90;xpos+=3)	//循环设置曲线x轴坐标边界
			{
				repaint();					//调用paint()方法
				try{
					Thread.sleep(200);		//线程休息100毫秒
					}catch(InterruptedException e){}
				if(painted)
				{
					painted=false;	
				}
			}
		}
	}
	
	public void paint(Graphics g)			//画图方法
	{	
		for(x=0;x<=xpos;x+=1)				//循环画曲线
		{
		  a=Math.cos(x*Math. PI/180+Math.PI);
		  y=(int)(200+80*a);				//放大80倍并向下平移200个像素
		  g.drawString("·",x,y);
		}
		painted=true;
	}
}

在屏幕上画出奥运五环旗。


观察奥运五环旗的图案,直观的感觉,由五个圆组成,每个圆的颜色不一样,大小一样,按照一定的位置摆放,找到圆心坐标的规律,就可以通过Graphics类提供的绘制椭圆的方法drawOval()来实现画圆操作。

奥运五环旗由五个不同颜色的圆组成,我们可以通过循环依次输出五个圆环。

分析圆的位置规律。分析出圆的圆心坐标是画图的关键。


上面三个圆的圆心abcy坐标相同,下面两个圆的圆心dey坐标相同,ab=bc=ad=de,为保证两个圆相交,两个圆的圆心距离必须小于2rr代表圆的半径)。fab的中点,adf组成直角三角形,af=ad/2,只要给定五个圆的任何一个圆心坐标,就可以推倒出其他几个圆的圆心坐标。我们这里使用数组来存放每个圆环的颜色、坐标。代码如下:


import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.awt.Color;
import java.awt.Font;
public class Ch1_4 extends Applet 
{
	private Color clr[]={Color.blue,Color.black,Color.red,Color.yellow,
	Color.green};									//clr[]存储颜色
	private int[] x={100,136,172,118,154}; 		//x[]存储圆心的x坐标
	private int[] y={60,60,60,91,91};				//y[]存储圆心的y坐标
	private int[][] xy={{100,60},{136,60},{172,60},{118,91},{154,91}};	//存储圆心的坐标
	private int r=20,d=40;
	public void paint(Graphics g)					//画图方法
	{ 
		Font font = new Font("楷体",Font.PLAIN,20);	//文字字体、大小
		g.setFont(font);
	
		for(int i=0;i<5;i++)						//循环5次,画5个圆环
		{
			g.setColor(clr[i]);
			g.drawOval(x[i], y[i], d, d);	//d代表椭圆外切矩形的长宽,相等代表圆
		}
		g.setColor(Color.blue);						//设置颜色
		g.setFont(font);

		g.drawString("奥运五环旗",120,169);
	}														//END PAINT
}															//END CLASS






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心歌技术

打赏不能超过你的早餐钱!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值