Code:
package Gui;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MyFrame extends JFrame {
int number;
JLabel label;
JTextField text;
JButton button1,button2;
PoliceListener policeListener;
public static void main(String[] args) {
MyFrame myFrame = new MyFrame();
}
public MyFrame(){
init();
setTitle("猜数字");
setBounds(300,300,260,150);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
validate();
}
void init(){
setLayout(new FlowLayout());
button1 = new JButton("得到一个随机数");
add(button1);
label = new JLabel("输入你的猜测:",JLabel.CENTER);
label.setBackground(Color.cyan);
add(label);
text = new JTextField("0",10);
add(text);
button2 = new JButton("确定");
add(button2);
policeListener = new PoliceListener();
button1.addActionListener(policeListener);
button2.addActionListener(policeListener);
}
class PoliceListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == button1){
number = (int)(Math.random()*100)+1;
label.setText("输入你的猜测");
text.setText(null);
}
else if(e.getSource() == button2){
int guess = 0;
try{
guess = Integer.parseInt(text.getText());
if(guess == number){
label.setText("猜对了!");
}else if(guess < number){
label.setText("猜小了!");
text.setText(null);
}else {
label.setText("猜大了!");
text.setText(null);
}
}catch (NumberFormatException event){
label.setText("请输入数字字符");
}
}
}
}
}
myFrame:
package Gui;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
public class MyFrame extends JFrame {
JTextField text;
JTextArea area;
JLabel label;
JButton button1,button2,button3,button4;
int RandomNum = 50;
private Listener listener;
public MyFrame(){
init();
setTitle("猜数字游戏");
setBounds(300,300,320,270);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(){
setLayout(new FlowLayout());
area = new JTextArea(9,30);
add(new JScrollPane(area));
label = new JLabel("猜猜这个数字,范围1-100");
add(label);
text = new JTextField(10);
add(text);
button1 = new JButton("试试");
button2 = new JButton("看答案");
button3 = new JButton("刷新");
button4 = new JButton("退出");
add(button1);
add(button2);
add(button3);
add(button4);
listener = new Listener();
button1.addActionListener(listener);
button2.addActionListener(listener);
button3.addActionListener(listener);
button4.addActionListener(listener);
}
class Listener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == button1){
String content = text.getText().trim();
int num;
if(content.equals("")){
JOptionPane.showMessageDialog(null,"请输入数字");
return;
}
try{
num = Integer.valueOf(content).intValue();
}catch (Exception e1){
JOptionPane.showMessageDialog(null,"包含非数字字符");
return;
}
num = Integer.parseInt(content);
if(num > 100 || num < 0){
area.append("请输入1~100之间的数\n");
text.setText("");
return;
}
area.append("输入的数字为:"+num+"\n");
if(num == RandomNum){
area.append(num + "猜对了\n");
}
else if(num < RandomNum){
area.append(num + "猜小了\n");
}
else {
area.append(num + "猜大了\n");
}
text.setText("");
}
else if(e.getSource() == button2){
area.append("答案为"+RandomNum+"\n");
}
else if(e.getSource() == button3){
int n;
Random rand = new Random();
n = rand.nextInt(100)+1;
while(n == RandomNum){
n = rand.nextInt(100)+1;
}
RandomNum = n;
area.append("\n" + "目标数字已重新生成,请重新猜~"+"\n");
}
else if(e.getSource() == button4){
System.exit(0);
}
}
}
}
main:
package com.itheima;
import Gui.MyFrame;
import javax.swing.*;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
MyFrame myFrame = new MyFrame();
}
}