zoukankan      html  css  js  c++  java
  • java学习笔记(6)

    一个抽奖小程序:
    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="恭喜你!一等奖! 获得"+jiangPin[0].getText();
    break;
    case 2:
    result="恭喜你!二等奖! 获得"+jiangPin[1].getText();
    break;
    case 3:
    result="恭喜你!三等奖! 获得"+jiangPin[2].getText();
    break;
    case 4:
    result="恭喜你!幸运奖! 获得"+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);

    }

    }






  • 相关阅读:
    谷歌浏览器最新版下载链接
    第二章 算法——程序的灵魂
    第一章:程序设计和C语言
    C语言程序设计·谭浩强(第四版)第二章课后习题的答案,算法——程序的灵魂
    面向对象之类的其他方法
    面向对象之反射、包装、(定制)
    PyCharm使用秘籍视频
    re模块(详解正则)
    ATM购物车程序项目规范(更新到高级版)
    音乐脚本
  • 原文地址:https://www.cnblogs.com/abnry/p/5471054.html
Copyright © 2011-2022 走看看