该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
编写Java程序,编译和运行程序。自定义画椭圆与圆的方法,画一组椭圆与圆(最大半径200),以圆心处为参考点,半径依次增加2个像素,圆周的颜色随机。
/* 编写Java程序,编译和运行程序。
* 自定义画椭圆与圆的方法,画一组椭圆与圆(最大半径200),
* 以圆心处为参考点,
* 半径依次增加2个像素,
* 圆周的颜色随机。*/
import java.awt.*;
import java.applet.*;
import java.util.Random;
public class draw extends Applet {
private Graphics g1;
private drawcircle thread1 ; //画圆线程
private drawoval thread2 ; //画椭圆线程
private int r = 10; //初始圆形半径
private int width=10; //初始椭圆长半径
private int length=5; //初始椭圆短半径
public void init() //初始化
{
g1 = getGraphics();
thread1 = new drawcircle(); //画园
thread2 = new drawoval(); //画椭圆
thread1.start(); //启动画圆线程
thread2.start(); //启动画椭圆线程
}
public void paint(Graphics g)
{
setSize(500, 680);
if(Thread.currentThread() == thread1)
{
draw_circle(g);
}
if(Thread.currentThread()== thread2)
{
draw_oval(g);
}
}
public class drawcircle extends Thread
{
public void run()
{
while(r<201)
{
try
{
Thread.sleep(100);
}
catch(Exception e)
{
}
paint(g1); //刷新画圆界面
if(r == 200)
{
r = 10;
}
}
}
}
public class drawoval extends Thread
{
public void run()
{
while(width<201)
{
try
{
Thread.sleep(100);
}
catch(Exception e)
{
Thread.currentThread().interrupt();
}
paint(g1); //刷新画椭圆界面
if(width == 200)
{
width = 10;
length = 5;
}
}
}
}
public void draw_circle(Graphics g) //画圆方法
{
int x=250 ;
int y=200 ;
Random random = new Random();
int R=random.nextInt(256);
int G=random.nextInt(256);
int B=random.nextInt(256);
Color color = new Color(R,G,B);
g.drawString("画一组同心圆", 20,40);
g.setColor(color);
g.drawOval(x-r, y-r, r*2, r*2);
r +=2;
}
public void draw_oval(Graphics g) //画椭圆方法
{
int x=250 ;
int y=550 ;
Random random = new Random();
int R=random.nextInt(256);
int G=random.nextInt(256);
int B=random.nextInt(256);
Color color = new Color(R,G,B);
g.drawString("画一组同心椭圆", 20,400);
g.setColor(color);
g.drawOval(x-width, y-length, width*2, length*2);
width +=2;
length+=1.5;
}
}