java 抽奖软件

package Lottery;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Random;

import javax.swing.JFrame;

public class Lottery extends JFrame {
 private int i = 0, j = 0;
 private int[] a = { 113, 158, 203, 248, 293, 338, 383, 428 };
 private int x1 = 200, y1 = 200, x2, y2;

 public void init() {
  setSize(400, 380);
  setLocationRelativeTo(null);
  setResizable(false);
  setDefaultCloseOperation(3);
  setVisible(true);

  MouseAdapter mouse_listener = new MouseAdapter() {

   public void mousePressed(MouseEvent e) {
    if (e.getX() >= 170 && e.getX() <= 240 && e.getY() >= 165 && e.getY() <= 235)
     lottery();
   }
  };

  addMouseListener(mouse_listener);
 }

 public void paint(Graphics g) {
  g.setColor(Color.BLACK);
  g.fillRect(0, 0, 400, 380);
  g.setColor(Color.ORANGE);
  g.fillOval(50, 50, 300, 300);
  g.setColor(Color.RED);
  g.fillOval(170, 165, 70, 70);
  g.setColor(Color.BLACK);
  g.setFont(new Font("楷体", Font.BOLD, 15));
  g.drawString("开始抽奖", 175, 205);
  g.drawLine(90, 90, 178, 178);
  g.drawLine(50, 200, 171, 200);
  g.drawLine(70, 320, 179, 220);
  g.drawLine(200, 360, 199, 232);
  g.drawLine(340, 350, 230, 225);
  g.drawLine(240, 200, 350, 200);
  g.drawLine(227, 173, 330, 70);
  g.drawLine(200, 166, 200, 50);
  g.setColor(Color.RED);
  g.setFont(new Font("楷体", Font.BOLD, 20));
  g.drawString("一等奖", 135, 125);
  g.drawString("二等奖", 92, 180);
  g.drawString("三等奖", 92, 237);
  g.drawString("四等奖", 130, 290);
  g.drawString("五等奖", 200, 290);
  g.drawString("六等奖", 250, 240);
  g.drawString("七等奖", 250, 180);
  g.drawString("八等奖", 210, 125);
  j = i % 8;
  x2 = (int) (200 + Math.cos((double) a[j] / 180 * 3.14) * 100);
  y2 = (int) (200 - Math.sin((double) a[j] / 180 * 3.14) * 100);
  g.drawLine(x1, y1, x2, y2);

 }

 /**
  * 抽奖函数
  */
 public void lottery() {

  Thread thread = new Thread() {
   Random random = new Random();

   public void run() {
    while (i < random.nextInt(2000)) {
     i++;
     try {
      Thread.sleep(50);
     } catch (InterruptedException e) {
      e.printStackTrace();
     }
     repaint();
     lot();

    }
   }

  };
  thread.start();
  i = 0;
 }

 public void lot() {
  switch (i % 8) {
  case 0:
   System.out.println("一等奖");
   break;
  case 1:
   System.out.println("二等奖");
   break;
  case 2:
   System.out.println("三等奖");
   break;
  case 3:
   System.out.println("四等奖");
   break;
  case 4:
   System.out.println("五等奖");
   break;
  case 5:
   System.out.println("六等奖");
   break;
  case 6:
   System.out.println("七等奖");
   break;
  case 7:
   System.out.println("八等奖");
   break;
  default:
   break;
  }
 }

 public static void main(String[] args) {
  new Lottery().init();
 }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值