import java.applet.*;
import java.awt.*;
import java.util.*;
public class App extends Applet implements Runnable
{
Thread runner;
final int distance=3;
final int numP=4;
final int numArray=6;
int[][] xPoints=new int[numArray][numP];
int[][] yPoints=new int[numArray][numP];
Color c=new Color(20,20,20);
Random rd=new Random();
public void paint(Graphics g)
{
g.setColor(c);
for(int i=0;i<numArray;i++)
g.drawPolygon(xPoints[i],yPoints[i],numP);
}
public void stop()
{
if(runner!=null)
{
runner.stop();
runner=null;
}
}
public void start()
{
if(runner==null)
{
runner=new Thread(this);
runner.start();
}
}
public void run()
{
while (true)
{
repaint();
c=new Color(rd.nextInt(255),rd.nextInt(255),rd.nextInt(255));
try
{
Thread.sleep(300);
}
catch(InterruptedException e)
{
}
for(int j=0;j<numP;j++)
{
xPoints[0][j]=rd.nextInt(800);
yPoints[0][j]=rd.nextInt(600);
}
for(int i=1;i<numArray;i++)
for(int j=0;j<numP;j++)
{
xPoints[i][j]=xPoints[i-1][j]+distance;
yPoints[i][j]=yPoints[i-1][j]+distance;
}
}
}
}
import java.awt.*;
import java.util.*;
public class App extends Applet implements Runnable
{
Thread runner;
final int distance=3;
final int numP=4;
final int numArray=6;
int[][] xPoints=new int[numArray][numP];
int[][] yPoints=new int[numArray][numP];
Color c=new Color(20,20,20);
Random rd=new Random();
public void paint(Graphics g)
{
g.setColor(c);
for(int i=0;i<numArray;i++)
g.drawPolygon(xPoints[i],yPoints[i],numP);
}
public void stop()
{
if(runner!=null)
{
runner.stop();
runner=null;
}
}
public void start()
{
if(runner==null)
{
runner=new Thread(this);
runner.start();
}
}
public void run()
{
while (true)
{
repaint();
c=new Color(rd.nextInt(255),rd.nextInt(255),rd.nextInt(255));
try
{
Thread.sleep(300);
}
catch(InterruptedException e)
{
}
for(int j=0;j<numP;j++)
{
xPoints[0][j]=rd.nextInt(800);
yPoints[0][j]=rd.nextInt(600);
}
for(int i=1;i<numArray;i++)
for(int j=0;j<numP;j++)
{
xPoints[i][j]=xPoints[i-1][j]+distance;
yPoints[i][j]=yPoints[i-1][j]+distance;
}
}
}
}
解决方案 »
- java中import,用*号代替类名导入类失败,为什么?
- 字符串转数组
- 【20分】帮我把下个程序加个注释,并说明下流程
- JAVA 做个 看图软件 。。 电子地图浏览器 。。。。
- 在DOS下运行这个test.class 文件怎么会报错的?
- 对数据处理出错了,为什么会出现两条同样的记录
- 作好的application 能否在没有安装jdk的windows下运行?
- 一个页中怎样插入多个Applet,两个Applet之间怎样进行数据等通信呢。。。
- Thinking in Java, 3rd Edition Revision 2.0
- 请问oracle8.05的jdbc驱动程序在哪里可以找到?
- win2000server下为什么不能显示中文?
- JDK编译时出现的问题?
纯是从书上一个关于动画的例子上套过来的。所以连为什么
把产生多边形的随机点放在run方法里我都不清楚.只知道这样可以重画和延迟时间。还有看java的帮助看得实在是太累,有没有什么好的书可以代替它啊?
这个程序运行时产生多边形的点也太过随机了,和windows的屏保"变幻线"
一点也不像,谁有“变幻线”的程序麻烦贴上来给我学习一下,谢了.
Hotjava应该不需要任何东西吧
import java.applet.*;
import java.awt.*;
import java.util.*;
public class App extends Applet implements Runnable
{
Thread runner;
final int distance=3;
final int numP=4;
final int numArray=6;
int[] dx=new int[numP];
int[] dy=new int[numP];
int[][] xPoints=new int[numArray][numP];
int[][] yPoints=new int[numArray][numP];
Color c=new Color(20,20,20);
Random rd=new Random();
public void paint(Graphics g)
{
g.setColor(c);
for(int i=0;i<numArray;i++)
g.drawPolygon(xPoints[i],yPoints[i],numP);
}
public void init()
{
for(int j=0;j<numP;j++)
{
xPoints[0][j]=rd.nextInt(800);
yPoints[0][j]=rd.nextInt(600);
dx[j]=20;
dy[j]=20;
}
}
public void stop()
{
if(runner!=null)
{
runner.stop();
runner=null;
}
}
public void start()
{
if(runner==null)
{
runner=new Thread(this);
runner.start();
}
}
public void run()
{
while (true)
{
c=new Color(rd.nextInt(255),rd.nextInt(255),rd.nextInt(255));
try
{
Thread.sleep(150);
}
catch(InterruptedException e)
{
}
for(int j=0;j<numP;j++)
{
if (xPoints[0][j]<0||xPoints[0][j]>800)
dx[j]=-dx[j];
if (yPoints[0][j]<0||yPoints[0][j]>600)
dy[j]=-dy[j];
xPoints[0][j]+=dx[j];
yPoints[0][j]+=dy[j];
}
for(int i=1;i<numArray;i++)
for(int j=0;j<numP;j++)
{
xPoints[i][j]=xPoints[i-1][j]+distance;
yPoints[i][j]=yPoints[i-1][j]+distance;
}
repaint();
}
}
}