Java 由浅入深GUI编程实战练习(二)
程序员文章站
2023-03-31 18:46:36
一,项目简介 1.利用Java GUI 绘制图像界面,设置整体布局 2.编写一个随机数生成1~100的随机数 3.编写一个验证类,用于验证用户输入值与生成随机数是否相等并记录用户猜测次数,当用户猜测成功或者超过5次结束游戏 二,运行界面 三,代码实现 补充 我的注意事项: ......
一,项目简介
1.利用java gui 绘制图像界面,设置整体布局
2.编写一个随机数生成1~100的随机数
3.编写一个验证类,用于验证用户输入值与生成随机数是否相等并记录用户猜测次数,当用户猜测成功或者超过5次结束游戏
二,运行界面
三,代码实现
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); } }
补充 我的注意事项:
上一篇: Scrapy框架-Spider和CrawlSpider的区别
下一篇: 前端(七)之动画与阴影