/*
猜数游戏:
该程序随机在1到1000的范围中选择一个供用户猜测的整数。
界面上提供一个文本框来接收用户输入的猜测的数,
如果用户猜得太大,则背景变为红色,如果猜得太小,背景变为蓝色。
用户猜对后,文本框变为不可编辑,同时提示用户猜对了。
点击重新开始按钮可以重新开始这个游戏。
点击退出按钮可以退出。
在界面上还需显示用户猜测的次数。
*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MyGame
{
public static void main(String[] args)
{
MyGameFrame frame=new MyGameFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class MyGameFrame extends JFrame
{
public MyGameFrame()
{
setTitle("SKZ's_Game");
setSize(WIDTH,HEIGHT);
//**********************************************
//顶部提示语
final JLabel label=new JLabel("您已经输入了"+0+"次");
add(label,BorderLayout.NORTH);
//**********************************************
//中间输入部分
final JPanel cenPanel=new JPanel();
add(cenPanel,BorderLayout.CENTER);
cenPanel.add(new JLabel("请输入猜测的数:"));
final JTextField myField=new JTextField(4);
cenPanel.add(myField);
final JLabel judge=new JLabel();
cenPanel.add(judge);
//**********************************************
//底部按钮
JPanel panel_1=new JPanel();
JButton okButton=new JButton("确定");
panel_1.add(okButton);
JPanel panel_2=new JPanel();
JButton restartButton=new JButton("重新开始");
panel_1.add(restartButton);
JPanel panel_3=new JPanel();
JButton exitButton=new JButton("退出");
panel_1.add(exitButton);
add(panel_1,BorderLayout.SOUTH);
//**********************************************
//事件监听
judge.setText("");
i=(int)(Math.random()*1000);//产生一个0-1000的随机数
//“确定”按钮的监听
okButton.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent event)
{
inTime++; //记录输入次数
if(inTime<=10) //限定输入次数不得大于10次
{
int value=Integer.parseInt(myField.getText()); //获取文本输入的内容
if(value>i) //输入大于随机数
{
judge.setText("大了");
label.setText("您已经输入了"+inTime+"次");
myField.setBackground(Color.red);
}
else if(value<i) //输入小于随机数
{
judge.setText("小了");
label.setText("您已经输入了"+inTime+"次");
myField.setBackground(Color.blue);
}
else //猜对了
{
judge.setText("恭喜您猜对了!!!");
label.setText("您已经输入了"+inTime+"次");
myField.setBackground(Color.white);
myField.setEnabled(false);
}
}
else
{
judge.setText("Game Over!~请重新开始~");
myField.setBackground(Color.white);
myField.setEnabled(false);
}
}
});
//“重新开始”按钮监听
restartButton.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent event)
{
inTime=0;
judge.setText(" ");
myField.setText("");
label.setText("您已经输入了"+inTime+"次");
myField.setBackground(Color.white);
myField.setEnabled(true);
i=(int)(Math.random()*1000);//重新生成一个0-1000的随机数
}
});
//“退出”按钮监听
exitButton.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent event)
{
System.exit(0);
}
});
}
public int inTime=0; //记录猜测次数
public int i; //存放随机数
public static final int WIDTH=400;
public static final int HEIGHT=150;
}