《简单猜数字界面版源码》由会员分享,可在线阅读,更多相关《简单猜数字界面版源码(9页珍藏版)》请在金锄头文库上搜索。
1、package com.game.caishuzi;import java.awt.Button;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Random;import java.util.Scanner;import java.util.Timer;import java.util.TimerTask;import javax.swing.JFrame;import javax.swing.JLabel;import
2、javax.swing.JOptionPane;import javax.swing.JTextField;public class Window extends JFrame/* */private static final long serialVersionUID = 1L;private static int num;private static String outtime;private static boolean waits = false;/false暂停 true继续public static void main(String args) JFrame jf = new J
3、Frame();jf.setTitle(猜数字 );jf.setLayout(null);setButtoms(jf);jf.setSize(400, 300);jf.setLocationRelativeTo(null);jf.setResizable(false);jf.setVisible(true);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public static void setLables(JFrame jf)JLabel jl = new JLabel(级别:);JLabel sumtime = new JLabel(
4、倒计时: );jl.setBounds(80, 70, 40, 30);sumtime.setBounds(20, 230, 55, 30);jf.add(jl);jf.add(sumtime);public static void setButtoms(final JFrame jf)Button bt0 = new Button(简单);Button bt1 = new Button(普通);Button bt2 = new Button(困难);Button bt3 = new Button(我猜);Button bt4 = new Button(答案);Button start = n
5、ew Button(开始 );final Button stop = new Button(暂停 );Button bt = new Button(退出);final JLabel jtf = new JLabel(普通);/级别显示final JLabel messages = new JLabel();/级别结果信息final JTextField shuru = new JTextField(请输入5个不重复的数字!);/输入框shuru.setEnabled(false);/没有点击开始前,不能输入,只读设置/秒表,倒计时final JLabel time = new JLabel(1
6、0:00);bt0.setBackground(Color.gray);bt1.setBackground(Color.gray);bt2.setBackground(Color.gray);bt0.setBounds(80, 20, 50, 30);bt1.setBounds(170, 20, 50, 30);bt2.setBounds(260, 20, 50, 30);bt3.setBounds(230, 120, 50, 30);bt4.setBounds(300, 120, 50, 30);bt.setBounds(320, 220, 50, 30);start.setBounds(2
7、30, 70, 50, 30);stop.setBounds(300, 70, 50, 30);jtf.setBounds(130, 70, 50, 30);shuru.setBounds(80, 120, 140, 30);messages.setBounds(10, 150, 280, 30);time.setBounds(70, 230, 150, 30);/按钮事件 start/1.选择难度bt0.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) jtf.s
8、etText(简单 );shuru.setText(请输入3个不重复的数字! );time.setText(3:00);waits = false;shuru.setEnabled(false);num=null;);bt1.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) jtf.setText(普通 );shuru.setText(请输入5个不重复的数字! );time.setText(10:00);waits = false;shuru.setEnabled(
9、false);num=null;);bt2.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) jtf.setText(困难 );shuru.setText(请输入8个不重复的数字! );time.setText(20:00);waits = false;shuru.setEnabled(false);num=null;);/开始/ final TimerTask task = new TimerTask() /计时器的方式显示时间动态/ Override/ publ
10、ic void run() / Window.run(outtime);/ time.setText(outtime);/ / ;/ final Timer timer = new Timer(); final Thread t = new Thread(new Thread()/线程的方式实现时间动态Overridepublic void run() while(true)try Thread.sleep(10);/释放资源 catch (InterruptedException e1) e1.printStackTrace();while(waits)try Thread.sleep(10
11、00); catch (InterruptedException e) e.printStackTrace();Window.run(outtime);time.setText(outtime);if(猜数失败! .equals(outtime)shuru.setText(别灰心,下次在努力吧!);shuru.setEnabled(false);return;);start.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) int n;final String ti
12、mes;if(简单 .equals(jtf.getText()n = 3;times=3:00;else if(普通.equals(jtf.getText()n = 5;times=10:00;else if(困难.equals(jtf.getText()n = 8;times=20:00;elseJOptionPane.showMessageDialog(null,请选择级别!);return;lifearray(n);/根据级别获取随机数shuru.setEnabled(true);shuru.setText();messages.setText();outtime = times;/ T
13、imer timer = new Timer(); / timer.schedule(task, 0,1000);waits = true;/让时间处于运行状态if(t.isAlive()elset.start(););/暂停stop.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) if(暂停 .equals(stop.getLabel()waits = false;stop.setLabel(继续);elsewaits = true;stop.setLabel(
14、暂停););/我猜bt3.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) if(null=num)JOptionPane.showMessageDialog(null,请先开始游戏!);return;if(.equals(shuru.getText()JOptionPane.showMessageDialog(null,请输入数字!);return;int n;if(简单 .equals(jtf.getText()n = 1;else if(普通.equals(j
15、tf.getText()n = 2;else if(困难.equals(jtf.getText()n = 3;elseJOptionPane.showMessageDialog(null,请选择级别!);return;String message = init(n,shuru.getText();if(!.equals(message)/JOptionPane.showMessageDialog(null,message);messages.setText(message);if(恭喜你猜对了! .equals(message)shuru.setEnabled(false);/输入框只读waits = false;/倒计时停止num=null;);/答案bt4.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) String strs = ;for(int c: num)strs+=c;shuru.setText(strs);messages.setText(偷看答案不是好孩子哦!);waits =