一个抽奖小程序:
import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.util.Random;
import java.util.Vector;
public class Lottery extends Applet {
private static final long serialVersionUID = 1L;
int w,h;
Button ok,out,setup;
String[] msg;
TextField[] gaiLv;
TextField[] jiangPin;
int mx,ml;
int maxNum;
Random ran;
Vector fist;
Vector sec;
Vector third;
Vector lucky;
boolean lot=false;
boolean iserr=false;
boolean issetup=false;
String mesg="输入错误";
String priseMsg="继续努力!";
public void init(){
w=400;
h=220;
mx=20;
ml=40;
ran=new Random();
this.setSize(w, h);
this.setLayout(null);
ok=new Button("抽奖");
out=new Button("退出");
setup=new Button("确认设置");
msg=new String[4];
msg[0]="一等奖";
msg[1]="二等奖";
msg[2]="三等奖";
msg[3]="幸运奖";
gaiLv=new TextField[4];
jiangPin=new TextField[4];

for(int i=0;i<4;i++){
gaiLv[i]=new TextField("0.0"+(i+1));
this.add(gaiLv[i]);
gaiLv[i].setBounds(mx+ml, 75+i*26, 60, 18);

jiangPin[i]=new TextField();
this.add(jiangPin[i]);
jiangPin[i].setBounds(mx+ml3, 75+i26, 80, 18);
}

this.add(ok);
ok.setBounds(260, 180, 60, 28);
ok.addActionListener(new LotButtonAction(this));
this.add(out);
out.setBounds(330, 180, 60, 28);
out.addActionListener(new LotButtonAction(this));

this.add(setup);
setup.setBounds(110, 180, 80, 24);
setup.addActionListener(new LotButtonAction(this));

}

public void paint(Graphics g){
g.setColor(Color.white);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
g.setColor(new Color(230,255,230));
g.fillRect(0, 0, w, 30);
g.setColor(Color.BLUE);
g.drawString("JAVA抽奖系统", 130, 20);
g.setColor(Color.ORANGE);
g.drawRect(10, 40, 230, 170);
g.setColor(Color.BLACK);
g.drawString("设置", mx, 60);
g.drawString("概率", mx+ml, 60);
g.drawString("奖品", mx+ml3, 60);
for(int i=0;i<msg.length;i++){
g.setColor(new Color(255-(i
30),45,89));
g.drawString(msg[i], 20, 90+i*26);
}
if(lottrue){
g.setColor(new Color(ran.nextInt(255),ran.nextInt(255),ran.nextInt(255)));
if(priseMsg.length()<=7){
g.drawString(priseMsg, 260, 100);
}else{
g.drawString(priseMsg.substring(0, 5), 260, 100);
g.drawString(priseMsg.substring(5), 260, 120);
}
}
if(iserr
true){
g.drawString(mesg, 260, 100);
}

}

public void getLucky(){
float firu=1;
float secu=1;
float thiu=1;
float fouu=1;
float minu=1;
if(gaiLv[0].getText().trim().length()>1){
firu=Float.parseFloat(gaiLv[0].getText());
if(firu<=0||firu>=1){
iserr=true;
return;
}
if(firu<minu){
minu=firu;
}
}
if(gaiLv[1].getText().trim().length()>1){
secu=Float.parseFloat(gaiLv[1].getText());
if(secu<=0||secu>=1){
iserr=true;
return;
}
if(secu<minu){
minu=secu;
}
}
if(gaiLv[2].getText().trim().length()>1){
thiu=Float.parseFloat(gaiLv[2].getText());
if(thiu<=0||thiu>=1){
iserr=true;
return;
}
if(thiu<minu){
minu=thiu;
}
}
if(gaiLv[3].getText().trim().length()>1){
fouu=Float.parseFloat(gaiLv[3].getText());
if(fouu<=0||fouu>=1){
iserr=true;
return;
}
if(fouu<minu){
minu=fouu;
}
}
if(minu>=1||minu<=0){
iserr=true;
return;
}
float aNum=1/minu;
maxNum=(int)aNum;
int count=(int)(firu/minu);
if(firu!=1){
fist=getLotteryVec(maxNum,count);
}else{
fist.removeAllElements();
}

count=(int)(secu/minu);
if(secu!=1){
sec=getLotteryVec(maxNum,count);
}else{
sec.removeAllElements();
}

count=(int)(thiu/minu);
if(thiu!=1){
third=getLotteryVec(maxNum,count);
}else{
third.removeAllElements();
}

count=(int)(fouu/minu);
if(fouu!=1){
lucky=getLotteryVec(maxNum,count);
}else{
lucky.removeAllElements();
}
issetup=true;
iserr=false;
}

protected Vector getLotteryVec(int maxNum,int num){
Vector result=new Vector();
for(int i=0;i<num;i++){
result.add(ran.nextInt(maxNum));
}
return result;
}

protected int getaNum(){
return ran.nextInt(maxNum);
}

public int isLucky(int pNum){
for(int i=0;i<fist.size();i++){
if(fist.get(i)pNum){
return 1;
}
}
for(int i=0;i<sec.size();i++){
if(sec.get(i)
pNum){
return 2;
}
}
for(int i=0;i<third.size();i++){
if(third.get(i)pNum){
return 3;
}
}
for(int i=0;i<lucky.size();i++){
if(lucky.get(i)
pNum){
return 4;
}
}

return -1;
}

public void ButtonActionPerformed(ActionEvent e){
String acName=e.getActionCommand();
if(acName.equals("抽奖")){
if(issetup==false){
priseMsg="请先设置参数!";
lot=true;
repaint();
lot=false;
return;
}
lot=true;
priseMsg=getResult(getaNum());
repaint();
// lot=false;
}else if(acName.equals("退出")){
this.setVisible(false);
this.stop();
this.destroy();
System.exit(0);
}else if(acName.equals("确认设置")){
lot=false;
getLucky();
repaint();
}
}

public String getResult(int num){
int resu=isLucky(num);
String result="";
switch(resu){
case -1:
result="继续努力!";
break;
case 1:
result="恭喜你!一等奖!\n获得"+jiangPin[0].getText();
break;
case 2:
result="恭喜你!二等奖!\n获得"+jiangPin[1].getText();
break;
case 3:
result="恭喜你!三等奖!\n获得"+jiangPin[2].getText();
break;
case 4:
result="恭喜你!幸运奖!\n获得"+jiangPin[3].getText();
break;
default:
result="继续努力!";
}
return result+num;
}
}
class LotButtonAction implements java.awt.event.ActionListener{
Lottery su;
public LotButtonAction(Lottery bun){
this.su=bun;
}
@Override
public void actionPerformed(ActionEvent e) {
su.ButtonActionPerformed(e);

}

}






posted on 2016-05-08 17:50  软三2014330304程志鸿  阅读(130)  评论(0编辑  收藏  举报