import java.awt.*;
import java.awt.geom.*;
import java.applet.Applet;
import java.math.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;public class animation extends Applet implements Runnable,ActionListener {
Thread animation;
int frame;
int delay;
private int h=390;
Graphics g1=getGraphics();
Button btn,btn1;//声明两个按钮
Font numberFaceFont;
Color numberColor;
int a[]=new int[10];
String blueball[]={"01","02","03","04","05","06","07","08","09","10",
"11","12","13","14","15","16","17","18","19","20","21","22","23","24",
"25","26","27","28","29","30","31","32","33"}; //定义字符类型数组并初始化数组
String b[]=new String[blueball.length];//新建一个数组,存放每次选出一个号码后剩下的号码
//String temp;
int w=blueball.length;
int x=0;
int y;
Random rnd=new Random(); //定义Random对象rnd
String str;
//fps为每秒桢的速度
public void init() {
String str=getParameter("fps");
int fps=(str!=null)?Integer.parseInt(str):10;
delay=(fps>0)?(1000/fps):100;
btn=new Button("Start");//创建开始按钮
btn.addActionListener(this);//以applet本身当成btn的聆听者
add(btn);将btn按钮加到applet窗口里
numberFaceFont=new Font("Serif",Font.BOLD,20);
numberColor=Color.blue;
for(int i=0;i<6;i++) //循环,随机选出6个号码
{
y=0;
x=Math.abs(rnd.nextInt())%w; // 把随机选中的数提出来,然后剩下数重新排列数组 for(int j=0;j<w;j++)
{
if(x==j)
{
b[i]=blueball[x];
continue;
}
blueball[y]=blueball[j];
y++;
}
w--;
//System.out.println(b[i]); //打印蓝球
}
int red=rnd.nextInt(15)+1; //选红球(此还没实现"0X"号码)
//if(red==0)
//System.out.println("*");
//red=rnd.nextInt(16);
//System.out.println(red); //打印红球
}
public void actionPerformed(ActionEvent e)
{
if(btn.getLabel()=="Start")
animation.start();//按下按钮线程开始
}
public void paint(Graphics g)//画动画所用图
{
g.setColor(Color.blue);
g.draw3DRect(44,55,300,400,true);
g.drawArc(44,55,300,300,180,180);
g.drawArc(100,55,300,400,20,30);
g.drawArc(100,90,300,500,20,30);
g.draw3DRect(390,190,200,100,true);
g.drawOval(50,a[0],32,32);
g.drawOval(82,a[1],32,32);
g.drawOval(114,a[2],32,32);
g.drawOval(146,a[3],32,32);
g.drawOval(178,a[4],32,32);
g.drawOval(210,a[5],32,32);
g.drawOval(242,a[6],32,32);
g.drawOval(274,a[7],32,32);
g.drawOval(306,a[8],32,32);
for(h=390;h<=557;h+=32)//画出包括数字的圆
{
g.drawOval(h,230,32,32);
}
//将选出的数字画到applet上
g.setColor(numberColor);
g.drawString(b[0],406,250);
g.drawString(b[1],438,250);
g.drawString(b[2],470,250);
g.drawString(b[3],502,250);
g.drawString(b[4],534,250);
g.drawString(b[5],568,250);
g.drawString(b[6],584,250);
} //启动动画线程
public void start(){
if(animation==null)
animation=new Thread(this);
}
public void stop(){
animation=null;
}
public void run(){
Thread t=Thread.currentThread();//创建一个线程对象
while(t==animation){
try{ if((a[0]-=32)<=55)
a[0]=200; if((a[1]-=32)<=55)
//a[1]+=32;//没用
a[1]=232;
if((a[2]-=32)<=55)
a[2]=264;
if((a[3]-=40)<=55)
a[3]=300;
if((a[4]-=50)<=55)
a[4]=309;
if((a[5]-=38)<=55)
a[5]=310;
if((a[6]-=43)<=55)
a[6]=300;
if((a[7]-=35)<=55)
a[7]=240;
if((a[8]-=32)<=55)
a[8]=200;
/*if((h+=32)>=557)
h=557;*/
//球坐标的移动,如a的初值为0,可运行IF语句,然后在运行中其改变赋值
repaint();//作用清除重画
Thread.sleep(delay);//线程休息时间
}catch(InterruptedException e){
break;
}
frame++;
}
}
}
import java.awt.geom.*;
import java.applet.Applet;
import java.math.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;public class animation extends Applet implements Runnable,ActionListener {
Thread animation;
int frame;
int delay;
private int h=390;
Graphics g1=getGraphics();
Button btn,btn1;//声明两个按钮
Font numberFaceFont;
Color numberColor;
int a[]=new int[10];
String blueball[]={"01","02","03","04","05","06","07","08","09","10",
"11","12","13","14","15","16","17","18","19","20","21","22","23","24",
"25","26","27","28","29","30","31","32","33"}; //定义字符类型数组并初始化数组
String b[]=new String[blueball.length];//新建一个数组,存放每次选出一个号码后剩下的号码
//String temp;
int w=blueball.length;
int x=0;
int y;
Random rnd=new Random(); //定义Random对象rnd
String str;
//fps为每秒桢的速度
public void init() {
String str=getParameter("fps");
int fps=(str!=null)?Integer.parseInt(str):10;
delay=(fps>0)?(1000/fps):100;
btn=new Button("Start");//创建开始按钮
btn.addActionListener(this);//以applet本身当成btn的聆听者
add(btn);将btn按钮加到applet窗口里
numberFaceFont=new Font("Serif",Font.BOLD,20);
numberColor=Color.blue;
for(int i=0;i<6;i++) //循环,随机选出6个号码
{
y=0;
x=Math.abs(rnd.nextInt())%w; // 把随机选中的数提出来,然后剩下数重新排列数组 for(int j=0;j<w;j++)
{
if(x==j)
{
b[i]=blueball[x];
continue;
}
blueball[y]=blueball[j];
y++;
}
w--;
//System.out.println(b[i]); //打印蓝球
}
int red=rnd.nextInt(15)+1; //选红球(此还没实现"0X"号码)
//if(red==0)
//System.out.println("*");
//red=rnd.nextInt(16);
//System.out.println(red); //打印红球
}
public void actionPerformed(ActionEvent e)
{
if(btn.getLabel()=="Start")
animation.start();//按下按钮线程开始
}
public void paint(Graphics g)//画动画所用图
{
g.setColor(Color.blue);
g.draw3DRect(44,55,300,400,true);
g.drawArc(44,55,300,300,180,180);
g.drawArc(100,55,300,400,20,30);
g.drawArc(100,90,300,500,20,30);
g.draw3DRect(390,190,200,100,true);
g.drawOval(50,a[0],32,32);
g.drawOval(82,a[1],32,32);
g.drawOval(114,a[2],32,32);
g.drawOval(146,a[3],32,32);
g.drawOval(178,a[4],32,32);
g.drawOval(210,a[5],32,32);
g.drawOval(242,a[6],32,32);
g.drawOval(274,a[7],32,32);
g.drawOval(306,a[8],32,32);
for(h=390;h<=557;h+=32)//画出包括数字的圆
{
g.drawOval(h,230,32,32);
}
//将选出的数字画到applet上
g.setColor(numberColor);
g.drawString(b[0],406,250);
g.drawString(b[1],438,250);
g.drawString(b[2],470,250);
g.drawString(b[3],502,250);
g.drawString(b[4],534,250);
g.drawString(b[5],568,250);
g.drawString(b[6],584,250);
} //启动动画线程
public void start(){
if(animation==null)
animation=new Thread(this);
}
public void stop(){
animation=null;
}
public void run(){
Thread t=Thread.currentThread();//创建一个线程对象
while(t==animation){
try{ if((a[0]-=32)<=55)
a[0]=200; if((a[1]-=32)<=55)
//a[1]+=32;//没用
a[1]=232;
if((a[2]-=32)<=55)
a[2]=264;
if((a[3]-=40)<=55)
a[3]=300;
if((a[4]-=50)<=55)
a[4]=309;
if((a[5]-=38)<=55)
a[5]=310;
if((a[6]-=43)<=55)
a[6]=300;
if((a[7]-=35)<=55)
a[7]=240;
if((a[8]-=32)<=55)
a[8]=200;
/*if((h+=32)>=557)
h=557;*/
//球坐标的移动,如a的初值为0,可运行IF语句,然后在运行中其改变赋值
repaint();//作用清除重画
Thread.sleep(delay);//线程休息时间
}catch(InterruptedException e){
break;
}
frame++;
}
}
}
楼主【xiaowei9527】截止到2008-06-25 09:09:08的历史汇总数据(不包括此帖):
发帖数:0 发帖分:0
结贴数:0 结贴分:0
未结数:0 未结分:0
结贴率:-------------------结分率:-------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
1. 将红色球全部放在ArrayList中。 list.add("01");...list.add("33");
2. 随机选择一个0到32的整数index啊(调整nextInt(int n)就可以取得)。此时以这个整数index为索引,String number=list.remove(index);//这里就得到一个随机的号码啦。
3.重复第二步,不过这个时候随机的时候是选择一个0到31的整数index。直到重复6次结束。
4.红色球选择完毕。
蓝色球道理一样。在另一个线程中运行选择篮球的程序就可以了a