该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
package cn.queai;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
/*
*
*/
public class Game extends JFrame {
public static void main(String[] args) {
new Game("猜数字游戏");
}
private int number; // 随机数
private JLabel helpText; // 提示文本
private JTextField inText; // 获得输入
private JLabel showText; // 结果文本
private GameListener Listener; // 输入框的监视器
public Game(String name) {
init(); // 添加组件
this.setTitle(name);// 设置标题
this.setVisible(true); // 是否可见
this.setLayout(new FlowLayout()); // 设置布局
this.setBounds(10, 10, 350, 100);// 大小
// 设置关闭
this.addWindowListener(new WindowListener() {
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
}
public void windowClosed(WindowEvent e) {
System.exit(0); // 关闭。
}
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
});
}
private void init() {
// 初始化组件
number = new Random().nextInt(101); // 包括100
helpText = new JLabel();
inText = new JTextField(4);
showText = new JLabel();
Listener = new GameListener();
// 设置组件。
helpText.setText("请输入数字(0-100):");
Listener.setComponent(helpText, inText, showText);// 把组件传过去,监视器才能操作
Listener.setNumber(number);// 传密码过去
inText.addActionListener(Listener);// 添加监视器
showText.setText("回车检测!");
// 顺序添加组件。
this.add(helpText);
this.add(inText);
this.add(showText);
}
}
class GameListener implements ActionListener {
/*
* 游戏检测类。输入框的监视器。
*/
private JLabel helpText; // 提示文本
private JTextField inText; // 获得输入
private JLabel showText; // 结果文本
private int number; // 随机数
public void setNumber(int number) {
this.number = number;
}
// 监视器拿到三个组件
public void setComponent(JLabel helpText, JTextField inText, JLabel showText) {
this.helpText = helpText;
this.inText = inText;
this.showText = showText;
}
public void actionPerformed(ActionEvent e) {
// 游戏检测。
showText.setText(""); // 清空结果文本
String str = inText.getText();
int num = -1;
try {
num = Integer.parseInt(str);
} catch (NumberFormatException e1) {
showText.setText("输入了非数字!");
return;
}
if (num < number) {
showText.setText("小了 ==");
} else if (num > number) {
showText.setText("大了 >
} else {
showText.setText("猜对了。");
}
inText.setText("");// 清空输入框
inText.setFocusable(true);// 获得焦点
}
}