欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java 由浅入深GUI编程实战练习(二)

程序员文章站 2023-03-31 18:46:36
一,项目简介 1.利用Java GUI 绘制图像界面,设置整体布局 2.编写一个随机数生成1~100的随机数 3.编写一个验证类,用于验证用户输入值与生成随机数是否相等并记录用户猜测次数,当用户猜测成功或者超过5次结束游戏 二,运行界面 三,代码实现 补充 我的注意事项: ......

一,项目简介

1.利用java gui 绘制图像界面,设置整体布局

2.编写一个随机数生成1~100的随机数

3.编写一个验证类,用于验证用户输入值与生成随机数是否相等并记录用户猜测次数,当用户猜测成功或者超过5次结束游戏

二,运行界面

Java 由浅入深GUI编程实战练习(二)

三,代码实现

import java.awt.*;
import java.awt.event.actionevent;
import java.awt.event.actionlistener;

import javax.swing.*;

public class demo5 extends jframe implements actionlistener {

    jpanel p1;
    jbutton btn1, btn2;
    jlabel jb1, jb2, jb3;
    jlabel haiamge;
    jtextfield text;
    jtextarea area;
    imageicon image;
    imageicon image1 = new imageicon("img/1.jpg"), image2 = new imageicon("img/2.jpg"),
            image3 = new imageicon("img/3.jpg"), image4 = new imageicon("img/4.gif");
    int number;
    boolean flat = false;// 是否生成随机数
    // 构造函数

    public demo5() {
        settitle("我的猜字游戏");
        setdefaultcloseoperation(windowconstants.dispose_on_close);
        setresizable(false);
        setlayout(null);// 先设置为null,不然不显示
        setsize(400, 300);
        setlocation(30, 30);
        getcontentpane().setbackground(color.gray);// 一定要加getcontentpane

        p1 = new jpanel();
        p1.setbackground(color.light_gray);
        p1.setbounds(0, 0, 320, 100);
        p1.setlayout(null);
        add(p1);

        btn1 = new jbutton("生成随机数");
        btn1.setbounds(200, 20, 100, 25);
        btn1.addactionlistener(this);
        p1.add(btn1);

        btn2 = new jbutton("确定");
        btn2.setbounds(200, 50, 100, 25);
        btn2.addactionlistener(this);
        p1.add(btn2);

        jb1 = new jlabel("选择一个随机数");
        jb1.setforeground(color.blue);
        jb1.setbounds(40, 20, 110, 23);
        p1.add(jb1);

        jb2 = new jlabel("然后输入推测数字(1~100)");
        jb2.setforeground(color.blue);
        jb2.setbounds(20, 35, 150, 23);
        p1.add(jb2);

        text = new jtextfield("0");
        text.setforeground(color.magenta);
        text.setbounds(40, 60, 110, 23);
        p1.add(text);

        jb3 = new jlabel("未生成随机数");
        jb3.setforeground(color.red);
        jb3.setbackground(color.gray);
        jb3.setbounds(20, 160, 120, 23);
        add(jb3);

        area = new jtextarea("我猜!我猜!我猜猜猜!");
        area.setforeground(color.green);
        area.setbackground(color.gray);
        area.setfont(new font("宋体", font.bold, 13));
        area.seteditable(false);
        area.setbounds(20, 130, 150, 25);
        add(area);

        haiamge = new jlabel();
        haiamge.setbounds(180, 101, 128, 128);
        add(haiamge);

    }

    @override
    public void actionperformed(actionevent e) {
        // todo auto-generated method stub

        if (e.getsource() == btn1) {
            number = (int) (math.random() * 10) + 1;
            jb3.settext("已生成随机数");
            area.settext("猜");
            haiamge.seticon(image2);
            flat = true;// 生成随机数
        } else if (e.getsource() == btn2) {
            int guess = 0;
            try {
                guess = integer.parseint(text.gettext());
                if (flat == false) {
                    area.settext("失败");
                    return;
                } else {
                    if (guess == number) {
                        area.settext(" 猜对了!就是" + number);
                        flat = false;
                        jb3.settext("未生成随机数");
                        haiamge.seticon(image1);
                    } else if (guess > number) {
                        area.settext(" 猜大了!");
                        text.settext(null);
                        haiamge.seticon(image3);
                    } else if (guess < number) {
                        area.settext("猜小了!");
                        text.settext(null);
                        haiamge.seticon(image4);
                    }
                }
            } catch (numberformatexception event) {
                event.printstacktrace();
            }
        }
    }

    public static void main(string[] args) {
        demo5 dem = new demo5();
        dem.setvisible(true);

    }
}

Java 由浅入深GUI编程实战练习(二)

补充 我的注意事项:

Java 由浅入深GUI编程实战练习(二)