Java 图形用户界面 复习题

2023-11-05

题目:

编写一个包含主方法main的公共类(访问权限为public的类),该类继承自窗体类JFrame,并且,该类实现了接口ActionListener(实现接口ActionListener的方法actionPerformed)。

需要实现的界面

实现图形用户界面(当窗口大小改变时,第1行和第2行的组件的大小也会随之改变,其他组件的大小不发生改变),并且完成以下要求:

(1)窗体的标题是“猜数字小游戏”。

(2)单击“得到一个随机数”按钮,系统产生一个1~10之间的随机整数。(使用Math类的方法random( ))

(3)在“输入您的猜测:”后面的文本框中输入你要猜测的整数,之后单击“确定”按钮。

(4)对猜测的整数,图形用户界面的最下面会有提示信息:没有猜的时候,显示“无反馈信息”;如果猜大了,显示“猜大了”;如果猜小了,显示“猜小了”;如果猜对了,显示“猜对了”。(蓝色字体通过JLabel类的对象调用方法setForeground(Color.blue)实现)

审题:

当窗口大小改变时,第1行和第2行的组件的大小也会随之改变——GridLayout布局;其他组件的大小不发生改变——FlowLayout布局。

//图形用户界面
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

//又是窗体又是监听器
class GuessNumberGame extends JFrame implements ActionListener {
	int num;
	
    //创建按钮
	JButton getNum = new JButton("得到一个随机数");
	JButton enterButton = new JButton("确定");
    //创建文本框
	JTextField inputNum  = new JTextField();
    //创建标签对象(标签用来显示信息)
	JLabel fanKui = new JLabel("无反馈信息");
	
	GuessNumberGame() {
		setLayout(new GridLayout(3, 1));        //对窗体的默认布局进行更改
		fanKui.setForeground(Color.blue);
		
        //向按钮增加监视器
		//this是窗体对象本身
		getNum.addActionListener(this);
		enterButton.addActionListener(this);
		
        //将JPanel类的对象作为一个整体添加到窗体或其它容器中
		JPanel p1 = new JPanel();
		p1.setLayout(new GridLayout(2, 2, 0, 5));
		p1.add(new JLabel(" 获取 [1, 10] 之间的随机数:"));
		p1.add(getNum);
		p1.add(new JLabel(" 输入您的猜测:"));
		p1.add(inputNum);
		
		JPanel p2 = new JPanel();
        //FlowLayout()组件大小不会随窗体的大小的改变而改变
		p2.setLayout(new FlowLayout());
		p2.add(new JLabel("单击确定按钮:"));
		p2.add(enterButton);
		
		JPanel p3 = new JPanel();
		p3.setLayout(new FlowLayout());
		p3.add(fanKui);
		
		add(p1);
		add(p2);
		add(p3);
		
		setTitle("猜数字小游戏");
		setBounds(100, 100, 400, 200);
		setVisible(true);        //默认不可见
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	//实现接口的抽象方法
	//单击按钮时触发ActionEvent事件
	public void actionPerformed(ActionEvent ae) {
		JButton button = (JButton)ae.getSource();        //获取事件源
		if(button == getNum) {
			num = (int)(Math.random()*9)+1;
		}
		if(button == enterButton) {
			int temp;
			String s = inputNum.getText();
			temp = Integer.parseInt(s);
			if(temp == num) {
				fanKui.setText("猜对了");
			}
			else if(temp < num) {
				fanKui.setText("猜小了");
			}
			else {
				fanKui.setText("猜大了");
			}
		}
	}
	public static void main(String[] args) {
		new GuessNumberGame();
	}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 图形用户界面 复习题 的相关文章

  • 如果在睡眠线程上调用interrupt()会发生什么?

    我有一个线程 然后run I call sleep 如果我中断这个线程会发生什么 MyThread extends Thread public void run try sleep 1000000 catch InterruptedExce
  • Grails 2.3.0 自动重新加载不起作用

    我最近将我们的项目升级到 grails 2 3 0 一切工作正常 除了每当我更改代码时自动重新加载都无法工作的问题 这包括所有项目工件 控制器 域 服务 gsps css 和 javascript 文件 我的旧版本 grails 可以正常工
  • 为什么 java 编译器不报告 Intellij 中多播表达式的未经检查的强制转换警告?

    为什么下面的代码没有报告 Intellij IDEA 的未经检查的警告jdk 1 8 0 121自从Supplier
  • 在文本文件中搜索单词并返回其频率

    如何在包含单词文本的文本文件中搜索特定单词并返回其频率或出现次数 使用扫描仪 String text Question how to search for a particular word in a text file containin
  • Condition 接口中的 signalAll 与对象中的 notificationAll

    1 昨天我才问过这个问题条件与等待通知机制 https stackoverflow com questions 10395571 condition vs wait notify mechanism 2 我想编辑相同的内容并在我的问题中添加
  • 在java中实现你自己的阻塞队列

    我知道这个问题之前已经被问过并回答过很多次了 但我只是无法根据互联网上找到的示例找出窍门 例如this http tutorials jenkov com java concurrency blocking queues html or t
  • 如何获取 WebElement 的父级[重复]

    这个问题在这里已经有答案了 我试过了 private WebElement getParent final WebElement webElement return webElement findElement By xpath 但我得到
  • Git 无法识别重命名和修改的包文件

    我有一个名为的java文件package old myfile java 我已经通过 git 提交了这个文件 然后我将我的包重命名为new所以我的文件在package new myfile java 我现在想将此文件重命名 和内容更改 提交
  • Java 数组的最大维数

    出于好奇 在 Java 中数组可以有多少维 爪哇language不限制维数 但是JavaVM规范将维度数限制为 255 例如 以下代码将无法编译 class Main public static void main String args
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • Spring Security OAuth2简单配置

    我有一个简单的项目 需要以下简单的配置 我有一个 密码 grant type 这意味着我可以提交用户名 密码 用户在登录表单中输入 并在成功时获得 access token 有了该 access token 我就可以请求 API 并获取用户
  • 在 Spring Boot Actuator 健康检查 API 中启用日志记录

    我正在使用 Spring boot Actuator APIproject https imobilenumbertracker com 拥有一个健康检查端点 并通过以下方式启用它 management endpoints web base
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • 对象锁定私有类成员 - 最佳实践? (爪哇)

    I asked 类似的问题 https stackoverflow com questions 10548066 multiple object locks in java前几天 但对回复不满意 主要是因为我提供的代码存在一些人们关注的问题
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • JVM:是否可以操作帧堆栈?

    假设我需要执行N同一线程中的任务 这些任务有时可能需要来自外部存储的一些值 我事先不知道哪个任务可能需要这样的值以及何时 获取速度要快得多M价值观是一次性的而不是相同的M值在M查询外部存储 注意我不能指望任务本身进行合作 它们只不过是 ja
  • 哪个集合更适合存储多维数组中的数据?

    我有一个multi dimensional array of string 我愿意将其转换为某种集合类型 以便我可以根据自己的意愿添加 删除和插入元素 在数组中 我无法删除特定位置的元素 我需要这样的集合 我可以在其中删除特定位置的数据 也
  • Java的-XX:+UseMembar参数是什么

    我在各种地方 论坛等 看到这个参数 并且常见的答案是它有助于高并发服务器 尽管如此 我还是找不到 sun 的官方文档来解释它的作用 另外 它是Java 6中添加的还是Java 5中存在的 顺便说一句 许多热点虚拟机参数的好地方是这一页 ht
  • Android AutoCompleteTextView 带芯片

    我不确定我是否使用了正确的词语来描述此 UI 功能 但我已附上我希望在我的应用程序中实现的目标的快照 它由 Go SMS 使用 用户在编辑文本中键入联系人 在用户从完成下拉列表中选择联系人后 该联系人将被插入到编辑文本中 如附图所示 编辑文
  • 在哪里存储 Java 的 .properties 文件?

    The Java教程 http download oracle com javase tutorial essential environment properties htmlon using Properties 讨论如何使用 Prop

随机推荐

  • Ant Design学习1——概述

    2021SC SDUSC 介绍 Ant Design of React antd 是基于 Ant Design 设计体系的 React UI 组件库 主要用于研发企业级中后台产品 官方简介 蚂蚁集团的企业级产品是一个庞大且复杂的系统 数量多
  • MyEclipse提示过期,MyEclipse Subscription Expired激活方案

    一 错误描述 紧接上文 虽然解决了MyEclipse提示过期问题 但是你会发现出现一行红色提示如下 1 错误日志 Product activation must be completed within 5 days 2 错误说明 产品激活必
  • Windows多显示器编程--VC

    一 Windows中接入多个显示器时 可设置为复制和扩展屏 1 设置为复制屏幕时 多个显示器的分辨率是一样的 位置为0 分辨率值 2 设置为扩展屏幕时 显示器之间的关系比较复杂些 首先Windows系统会识别一个主显示器 这个可以在屏幕分辨
  • 问题总结!常用插件Pytest的测试用例的一些问题

    目录 前言 失败重跑 Pytest rerunfailures 用例执行顺序 Pytest ordering 重复执行 Pytest repeat 多重断言 Pytest assume 前言 Pytest是Python中的一个流行的测试框架
  • Linux经典书籍推荐

    Linux经典书籍推荐 入门篇 LINUX权威指南 书不错 写的很全面也比较广 涉及的不深 做为入门书籍不错 可以比较全面的了解linux 另外比较热门的也可以看看 鸟哥的私房菜 等书 偏管理类的书 如果想做server方向的可以找来看看
  • 如何使用 WSL 在 Windows 上安装 Linux-官方流程

    前提条件 安装 WSL 命令 更改默认安装的 Linux 发行版 设置 Linux 用户信息 设置和最佳实践 检查你正在运行的 WSL 版本 从 WSL 1 升级到 WSL 2 使用 WSL 运行多个 Linux 发行版的方法 想体验最新的
  • 刷脸支付服务商推广进程已逐渐深入

    2019年是刷脸支付的商用元年 刷脸支付推广进程已逐渐深入 移动支付领域巨头间的竞争越发激烈 在支付宝与微信支付之后 银联也正式加入 近日 中国银联旗下云闪付APP正式推出刷脸支付服务 目前已经在宁波 长沙 杭州 嘉兴 合肥 广州 武汉七个
  • docker容器里设置中文时区

    本文讨论docker容器里中文时区的问题 总所周知docker hub上的镜像默认都是英文时区的 在国人使用过程当中需要将时区设置成中文 我原来光配置 etc localtime了date显示的时间也对 但是tomcat日志里输出的时间还是
  • git 基本使用

    git和svn的区别 svn的特点是集中式 工程文件全部放在中央服务器的一个唯一库上 管理员对开发者的权限有掌控 每个人都只能拉取和开发属于自己的模块 且提交按照文件进行存储 有网络要求 git的特点是分布式 每个开发者都能把全部工程文件拉
  • 学习STM32(一)之芯片类型,内核架构的关系

    原文 https blog csdn net qlexcel article details 79299970 ARM内核和架构都是什么意思 它们到底是什么关系 1 ARM内核 从ARM7 ARM9到Cortex A7 A8 A9 A12
  • [开发

    Ngrok是一个开源的 跨平台的 用于将本地服务器 如Web服务器 映射到公共Internet上的工具 它允许你在没有公共IP地址或域名的情况下 将你本地开发环境暴露给其他人 方便测试 演示和与他人共享工作进展 官网地址 官方文档 官方下载
  • IDEA插件的在线离线安装

    插件的使用 插件的设置 在 IntelliJ IDEA 的安装讲解中我们其实已经知道 IntelliJ IDEA 本身很多功能也都是通过插件的方式来实现的 只是 IntelliJ IDEA 本身就是它自己的插件平台最大的开发者而已 开发了很
  • 关闭、开启 hype-v

    情景 在使用docker之后 需要使用虚拟机 直接开启虚拟机会报错 VMware Workstation 不支持在此主机上使用虚拟化性能计数器 有关更多详细信息 请参阅 VMware 知识库文章 81623 模块 VPMC 启动失败 未能启
  • JS 使用DES加密解密

    1 安装插件 npm install crypto js 2 使用 import CryptoJS from crypto js const key abcdefg const keyHex CryptoJS enc Utf8 parse
  • shardingsphere的sharding jdbc报类型转换异常问题

    shardingsphere的sharding jdbc报类型转换异常问题 根据官网的解释 在4 1 1的版本中是不支持数据库的原生native sql的 所有的sql都会被转换校验一次之后才会进入mybatis进行解析 如果你的sql中使
  • get 和 post 俩种提交表单的方式

    get 和 post 俩种提交表单的方式 自动提交表单的数据 启用表单的自动提交方式时 我们需要添加上这一句 eg action Main GetData method post action Main GetData 这是所对应的路径 m
  • 【华为OD机试python】阿里巴巴找黄金宝箱(IV)【2023 B卷

    题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上 无意中发现了强盗集团的藏宝地 藏宝地有编号从0 N的箱子 每个箱子上面有一个数字 箱子排列成一个环 编号最大的箱子的下一个是编号为0的箱子 请输出每个箱子贴的数字之后的第一个比它大的数 如果不
  • JetBrains软件(Idea、Pycharm等)模板设置

    以Idea为例 一 打开File中的Settings 二 打开Editor中的File and Code Templates 找到对应的文件修改即可 三 修改后的状态
  • CCF/CSP 201409-3 字符串匹配(满分题解Java版)

    此题虽然放在了第三题 但是如果对Java的API了解的比较好的同学 解这道题一点都不难 比前几题都要简单一些 题目描述 官方题目地址 读题请点击 Java满分题解 import java util Scanner next 与 nextLi
  • Java 图形用户界面 复习题

    题目 编写一个包含主方法main的公共类 访问权限为public的类 该类继承自窗体类JFrame 并且 该类实现了接口ActionListener 实现接口ActionListener的方法actionPerformed 需要实现的界面