50,523
社区成员
发帖
与我相关
我的任务
分享
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import javax.swing.JTextField;
import java.util.Random;
public class Number implements ActionListener{
//定义一个数字,记录总猜测次数
int count = 0;
//定义一个随机的数字,该数字为要猜测的数据
int Number1;
//随机数对象,该对象在java.util.Random包里,用于生成一个伪随机整数
Random random;
//定义JPanel面板
JPanel Jpanel;
//定义四个JLabel
//该label用于显示猜测次数
JLabel label1;
//该label用于显示固定文本(输入猜测的数)
JLabel label2;
//该label用于当猜测成功时,显示GOOD JOB!
JLabel label3;
//该label用于显示答案
JLabel label4;
//定义四个按钮
//确认按钮
JButton Button1;
//重新开始按钮
JButton Button2;
//退出按钮
JButton Button3;
//查看答案按钮
JButton Button4;
//定义一个文本输入框,用于输入猜测的数字
JTextField Text;
// 生成一个随机数,并赋值给Number1变量
public void set_Num()
{
random = new Random();
//random.nextInt() 方法返回一个int范围内的整数,范围-2^31 ~ 2^31-1
// % 是取余数操作符 即将这个数除以1001取余数。
//Math.abs 是将上一步得到的数取绝对值
// 其实这里直接用Number1 = random.nextInt(1000);意思是取一个0-1000范围内的整数,就可以了。
Number1 = Math.abs(random.nextInt()%1001);
}
//重写构造方法
public Number()
{
//调用生成随机数的方法,并赋值给Number1变量
set_Num();
System.out.println(Number1);
//新建一个JFrame,并设置宽高。
JFrame Frame = new JFrame();
Frame.setSize(300, 220);
//new一个Jpanel,设置宽高,及其他属性
Jpanel = new JPanel();
Jpanel.setSize(300, 220);
Jpanel.setBackground(null);
Jpanel.setLayout(null);
//new 一个JLabel,并配上文字,该label用于显示猜测次数
label1 = new JLabel("你已经猜了" + count + "次");
label1.setBounds(5, 0, 150, 30);
//设置不可见
label1.setVisible(false);
//new 一个JLabel,并配上文字,该label用于显示答案
label4 = new JLabel("答案是:" + String.valueOf(Number1));
label4.setBounds(160, 0, 100, 30);
//设置不可见
label4.setVisible(false);
//new 一个JLabel,并配上文字,该label用于显示固定文本(输入猜测的数)
label2 = new JLabel("输入猜测的数");
label2.setBounds(30, 50, 100, 30);
//new 一个JTextField,即输入所猜测数字的输入框
Text = new JTextField();
Text.setBounds(120, 50, 60, 30);
//new 一个JLabel,并配上文字,该label用于当猜测成功时,显示GOOD JOB!
label3 = new JLabel();
label3.setBounds(190, 50, 100, 30);
//设置不可见
label3.setVisible(false);
//确认按钮
Button1 = new JButton("确认");
Button1.setMnemonic(KeyEvent.VK_I);
Button1.addActionListener(this);
Button1.setBounds(10, 110, 60, 30);
//重新开始按钮
Button2 = new JButton("重新开始");
Button2.setMnemonic(KeyEvent.VK_I);
Button2.addActionListener(this);
Button2.setBounds(80, 110, 100, 30);
//退出按钮
Button3 = new JButton("退出");
Button3.setMnemonic(KeyEvent.VK_I);
Button3.addActionListener(this);
Button3.setBounds(190, 110, 60, 30);
//查看答案按钮
Button4 = new JButton("查看答案!");
Button4.setMnemonic(KeyEvent.VK_I);
Button4.addActionListener(this);
Button4.setBounds(80, 150, 100, 30);
//将各个组件添加到各自的Jpanel及Frame里
Jpanel.add(Button1);
Jpanel.add(Text);
Jpanel.add(Button2);
Jpanel.add(Button3);
Jpanel.add(Button4);
Jpanel.add(label1);
Jpanel.add(label2);
Jpanel.add(label3);
Jpanel.add(label4);
Frame.add(Jpanel);
Frame.setVisible(true);
}
//重新ActionListener中的actionPerformed方法,用于监控按钮点击事件
public void actionPerformed(ActionEvent e) {
//当Button1 按钮点击时,即确认按钮
if(e.getSource()== Button1)
{
//设置label1为可见
label1.setVisible(true);
//增加猜测次数
count ++;
//改变label1的文本值
label1.setText("你已经猜了" + count + "次");
//获取一个JTextField输入框的值,即猜测的数字
String str = new String(Text.getText());
//将获取到的值转换为int
int Num2 = Integer.parseInt(str);
//比较该int值是否等于预先生成的Number1,
//如果相等,即猜测正确
if(Num2 == Number1)
{
Text.setEditable(false);
Jpanel.setBackground(null);
label3.setVisible(true);
label3.setText("GOOD JOB!");
label4.setVisible(false);
Button1.setEnabled(false);
Button4.setEnabled(false);
}
//如果猜小了
else if(Num2 < Number1)
{
Jpanel.setBackground(Color.blue);
label3.setVisible(true);
label4.setVisible(false);
label3.setText("太小");
}
//否则,即猜大了
else
{
Jpanel.setBackground(Color.red);
label3.setVisible(true);
label4.setVisible(false);
label3.setText("太大");
}
}
//当Button2 按钮点击时,即重新开始按钮
else if(e.getSource() == Button2)
{
label1.setVisible(false);
Text.setEditable(true);
label3.setVisible(false);
Button1.setEnabled(true);
Text.setText(null);
Jpanel.setBackground(null);
count = 0;
set_Num();
label4.setText("答案是:" + String.valueOf(Number1));
label4.setVisible(false);
Button4.setEnabled(true);
System.out.println(Number1);
}
//当Button3 按钮点击时,即退出按钮
else if(e.getSource() == Button3)
System.exit(0);
//否则,即当Button4 按钮点击时,显示答案
else
{
label4.setVisible(true);
}
}
public static void main(String[] args) {
//注解,这个注解可能是自动生成的,用于提示num1这个变量目前并没有呗使用,其实直接使用new Number(); 就能启动程序
@SuppressWarnings("unused")
Number Num1;
//new一个Number对象,new这个对象时候会执行对应的构造方法
Num1 = new Number();
}
}
package text4;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import javax.swing.JTextField;
import java.util.Random;
public class Number implements ActionListener {
int count = 0;
int Number1;
Random random;
JPanel Jpanel;
JLabel label1;
JLabel label2;
JLabel label3;
JLabel label4;
JButton Button1;
JButton Button2;
JButton Button3;
JButton Button4;
JTextField Text;
public void set_Num() {
random = new Random();
Number1 = Math.abs(random.nextInt() % 1001);
}
public Number() {
set_Num();
System.out.println(Number1);
JFrame Frame = new JFrame();
Frame.setSize(300, 220);
Jpanel = new JPanel();
Jpanel.setSize(300, 220);
Jpanel.setBackground(null);
Jpanel.setLayout(null);
label1 = new JLabel("你已经猜了" + count + "次");
label1.setBounds(5, 0, 150, 30);
label1.setVisible(false);
label4 = new JLabel("答案是:" + String.valueOf(Number1));
label4.setBounds(160, 0, 100, 30);
label4.setVisible(false);
label2 = new JLabel("输入猜测的数");
label2.setBounds(30, 50, 100, 30);
Text = new JTextField();
Text.setBounds(120, 50, 60, 30);
label3 = new JLabel();
label3.setBounds(190, 50, 100, 30);
label3.setVisible(false);
Button1 = new JButton("确认");
Button1.setMnemonic(KeyEvent.VK_I);
Button1.addActionListener(this);
Button1.setBounds(10, 110, 60, 30);
Button2 = new JButton("重新开始");
Button2.setMnemonic(KeyEvent.VK_I);
Button2.addActionListener(this);
Button2.setBounds(80, 110, 100, 30);
Button3 = new JButton("退出");
Button3.setMnemonic(KeyEvent.VK_I);
Button3.addActionListener(this);
Button3.setBounds(190, 110, 60, 30);
Button4 = new JButton("查看答案!");
Button4.setMnemonic(KeyEvent.VK_I);
Button4.addActionListener(this);
Button4.setBounds(80, 150, 100, 30);
Jpanel.add(Button1);
Jpanel.add(Text);
Jpanel.add(Button2);
Jpanel.add(Button3);
Jpanel.add(Button4);
Jpanel.add(label1);
Jpanel.add(label2);
Jpanel.add(label3);
Jpanel.add(label4);
Frame.add(Jpanel);
Frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == Button1) {
label1.setVisible(true);
count++;
label1.setText("你已经猜了" + count + "次");
String str = new String(Text.getText());
int Num2 = Integer.parseInt(str);
if (Num2 == Number1) {
Text.setEditable(false);
Jpanel.setBackground(null);
label3.setVisible(true);
label3.setText("GOOD JOB!");
label4.setVisible(false);
Button1.setEnabled(false);
Button4.setEnabled(false);
} else if (Num2 < Number1) {
Jpanel.setBackground(Color.blue);
label3.setVisible(true);
label4.setVisible(false);
label3.setText("太小");
} else {
Jpanel.setBackground(Color.red);
label3.setVisible(true);
label4.setVisible(false);
label3.setText("太大");
}
} else if (e.getSource() == Button2) {
label1.setVisible(false);
Text.setEditable(true);
label3.setVisible(false);
Button1.setEnabled(true);
Text.setText(null);
Jpanel.setBackground(null);
count = 0;
set_Num();
label4.setText("答案是:" + String.valueOf(Number1));
label4.setVisible(false);
Button4.setEnabled(true);
System.out.println(Number1);
} else if (e.getSource() == Button3)
System.exit(0);
else {
label4.setVisible(true);
}
}
public static void main(String[] args) {
@SuppressWarnings("unused")
Number Num1;
Num1 = new Number();
}
}