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小时内删除。
发表评论