package csz;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;java生成随机数的方法
import javax.swing.WindowConstants;
import java.awt.FlowLayout; 
   
public class cszyx extends javax.swing.JFrame {
    private JLabel jLabel1;
    private JTextField jTextField1;
    private JButton jButton1;
    private int number = 0;
    private int counter = 0;
    long startTime = System.currentTimeMillis();
    long endTime;
   
    /**
    *新建一个随机数产生器,然后生成一个1到100之间的整数
    */
    public cszyx() {
        super ("欢迎来到猜数字游戏");
        initChuankou();
        Random random = new Random();
        number = Int(100); // 产生一个1-100间的随机数
    }
    /**
    *初始化窗口组件
    */
    private void initChuankou() {
        try {
           
            setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);// 窗口关闭时销毁窗口
            getContentPane().setLayout(null);// 设置窗口布局为绝对布局
           
            JFrame frame = new JFrame("Test Buttons");
            frame.setLayout(new FlowLayout());
           
            jLabel1 = new JLabel();
            getContentPane().add(jLabel1);
            jLabel1.setText("<html>欢迎进入有趣的猜数字游戏!请输入1~100中的任意一个数:</html>");
            jLabel1.setBounds(2, 0, 200, 50);// 设置标签位置
            jTextField1 = new JTextField();
            getContentPane().add(jTextField1);
            jTextField1.setBounds(50, 60, 112, 28);
            jTextField1.addKeyListener(new KeyAdapter() {// 文本框添加键盘按键监听-监听回车键
                        public void keyPressed(KeyEvent evt) {
                            jTextField1KeyPressed(evt);
                        }
                    });
            jButton1 = new JButton();
            getContentPane().add(jButton1);
            jButton1.setText("确定");
            jButton1.setBounds(70, 110, 60, 28);
            jButton1.addActionListener(new ActionListener() {// 按钮添加监听
                        public void actionPerformed(ActionEvent evt) {
                            jButton1ActionPerformed(evt);// 按钮被点击时 执行该方法
                        }
                    });
            pack();
            this.setSize(250, 200); // 设置窗口大小
            setLocationRelativeTo(null); // 设置窗口在显示器居中显示
        } catch (Exception e) {
            e.printStackTrace();
        }
        setVisible(true);
    }
    private void jButton1ActionPerformed(ActionEvent evt) {
        int guess = 0; // 记录玩家所猜测的数字
        counter++; // 计数器增加一。
        try {
            // 获取玩家的输入
            guess = Integer.Text());
        } catch (Exception e) {
            // 如果玩家不是输入一个合法的整数,则让他重新输入。
            JOptionPane.showMessageDialog(null, "数字不合法,请输入一个1-100之间的整数!"); // 显示一个对话框
            jTextField1.setText("");// 清空文本框内容
            questFocus();// 文本框获取输入焦点
            return;
        }
        // 对玩家的输入进行判断。
        if (guess > number) {
            JOptionPane.showMessageDialog(null, "猜大了哦!!");
            jTextField1.setText("");
            questFocus();
            return;
        }
        if (guess < number) {
            JOptionPane.showMessageDialog(null, "太小啦");
            jTextField1.setText("");
            questFocus();
            return;
        }
        if (guess == number) {
            endTime = System.currentTimeMillis();
            // 判断成绩。
            switch (counter) {
            case 1:
                JOptionPane.showMessageDialog(null, "你是神么??  这也太给力了吧!!");
                break;
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7:
                JOptionPane.showMessageDialog(null, "这么快就猜对了,很不错哦!");
                break;
            default:
                JOptionPane.showMessageDialog(null, "猜了半天才猜出来,还要多多练习哦!");
                break;
            }
            JOptionPane.showMessageDialog(null, "您总共猜了" + counter + "次  共花了"
                    + (endTime - startTime) / 1000 + "秒的时间答对正确答案!");
        }
        jTextField1.setText("");
        questFocus();
    }
    private void jTextField1KeyPressed(KeyEvent evt) {
        // 监听文本框回车
        if (KeyCode() == KeyEvent.VK_ENTER) {
            jButton1.doClick();// 文本框按回车键 执行“确定”按钮的事件
        }
    }
    public static void main(String[] args) {
       
        System.out.println("欢迎来到猜数字游戏");
        new cszyx();
    }
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。