【Java】【GUI 】猜数字游戏

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码:

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();
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_48180029/article/details/113832708