Java 由浅入深GUI编程实战练习(二)
一,项目简介
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); }
}
补充 我的注意事项:
Java 由浅入深GUI编程实战练习(二)的更多相关文章
- Java 由浅入深GUI编程实战练习(三)
一,項目介紹 1.可以查看年,月,日等功能.能获取今天的日期,并且能够通过下拉年,月的列表. 2.当程序运行时,显示的时间是系统当前时间. 3.可以手动输入时间,确定后系统跳转到制定的时间. 4.提供 ...
- Java 由浅入深GUI编程实战练习(一)
项目简介: 1.实现利用下拉菜单的方式选择发送快捷语句: 2.实现对留言信息内容的置顶处理以及至尾处理: 3.实现清屏处理或现实保留部分留言内容: 运行界面: 代码展示: import java.aw ...
- 【Java】GUI编程
GUI编程 前言 某koukou老师的任务罢了,好在狂神老师居然有GUI的课,只能说是有救星了. [狂神说Java]GUI编程入门到游戏实战 最好笑的是,老师要求掌握的居然是14年的知识,就连狂神在上 ...
- [Java聊天室server]实战之二 监听类
前言 学习不论什么一个稍有难度的技术,要对其有充分理性的分析,之后果断做出决定---->也就是人们常说的"多谋善断":本系列尽管涉及的是socket相关的知识,但学习之前,更 ...
- java基础—GUI编程(一)
一.AWT介绍
- 1.JAVA之GUI编程概述
下列内容为本人看毕向东老师java视频教程学习笔记! JAVA GUI图形用户界面编程: Windows 操作系统提供两种操作方式: ...
- 2.JAVA之GUI编程布局
布局管理器 容器中的组件排放方式,就是布局 常见的布局管理器: **************************************************** 1.FlowLayout(流式 ...
- 3.JAVA之GUI编程Frame窗口
创建图形化界面思路: 1.创建frame窗体: 2.对窗体进行基本设置: 比如大小.位置.布局 3.定义组件: 4.将组件通过add方法添加到窗体中: 5.让窗体显示,通过setVisible(tur ...
- 4.JAVA之GUI编程事件监听机制
事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...
随机推荐
- XML语言2.约束
三.XML的约束 目的:编写一个文件用来约束另一个xml文件的书写规范. DTD 用来约束xml的文件格式,保证这个文件是有效的. 内部DTD:所有的约束都是直接定义在xml文件中的 内部的 DOCT ...
- pyqt5之简单窗口的创建
在学完tkinter后,发现tkinter在布局方面特别的不方便(Tkinter资料:http://effbot.org/tkinterbook/tkinter-index.htm),因此学习pyqt ...
- js拼接字符串后swiper不能动的解决方案
swiper的配置一定要放在拼接字符串之后,紧随其后,如果放在其他的位置,swiper是不识别HTML的.
- k8s probe
livenessProbe: httpGet: path: /abc/401 port: 8384 scheme: HTTP
- Linux 纯字符界面的玩法
Linux 纯字符界面的用途 装逼必备 省资源,服务器一般不安装图形界面 图形界面崩溃后紧急救援 进入字符界面的正确方式 目前新的 Linux 发行版基本上都使用 Systemd 作为 init 程序 ...
- Python实现实现基于最小二乘法的线性回归
下面展示利用Python实现基于最小二乘法的线性回归模型,同时不需要引入其他科学计算以及机器学习的库. 利用Python代码表示如下: #首先引入数据集x,和y的值的大小利用Python的数据结构:列 ...
- [Swift]LeetCode151. 翻转字符串里的单词 | Reverse Words in a String
Given an input string, reverse the string word by word. Example: Input: "the sky is blue", ...
- [Swift]LeetCode208. 实现 Trie (前缀树) | Implement Trie (Prefix Tree)
Implement a trie with insert, search, and startsWith methods. Example: Trie trie = new Trie(); trie. ...
- [Swift]LeetCode1010. 总持续时间可被 60 整除的歌曲 | Pairs of Songs With Total Durations Divisible by 60
In a list of songs, the i-th song has a duration of time[i] seconds. Return the number of pairs of s ...
- [Swift]LeetCode1032. 字符流 | Stream of Characters
Implement the StreamChecker class as follows: StreamChecker(words): Constructor, init the data struc ...