《JAVA课程设计》实训第四天——《猜猜看》游戏

第四天,本来想进一步去改进《猜猜看》游戏的。可是非常多问题都不理解。也不熟悉怎么去弄到连接数据库。统计猜对次数,所以并没有进行再多的改动。

基本上就是这种执行结果了

import java.awt.EventQueue;  
import javax.imageio.ImageIO;  
import javax.swing.JFrame;  
import javax.swing.JPanel;  
import javax.swing.border.EmptyBorder;  
import javax.swing.AbstractButton;  
import javax.swing.ImageIcon;  
import javax.swing.JButton;  
import javax.swing.JFileChooser;  
import javax.swing.JOptionPane;  
import javax.swing.JTextField;  
import javax.swing.JLabel;  
import java.awt.Color;  
import java.awt.Graphics;  
import java.awt.Image;  
import java.awt.SystemColor;  
import java.awt.event.ActionListener;  
import java.awt.event.ActionEvent;  
import java.awt.event.MouseAdapter;  
import java.awt.event.MouseEvent;  
import java.io.File;  
import java.io.FileFilter;  
import java.io.IOException;  
import java.util.Random;  public class weiwei extends JFrame {  /**  
*  
*/  private static final long serialVersionUID = 1L;  private JPanel contentPane;  private JTextField tfDir;  private JTextField tfClass;  File[] fileArray; // 目录下全部文件  int NUM_IMG = 0; // 文件总数目  int index = 0; // 当前文件的序号  int i = 0;  JLabel jlbImg1 = null;  JLabel jlbImg2 = null;  JLabel jlbImg3 = null;  private Graphics g;  /** * Launch the application. */  class myFileFilter implements FileFilter {  @Override  public boolean accept(File pathname) {  String filename = pathname.getName().toLowerCase();  if (filename.contains(".jpg")) {  return false;  } else {  return true;  }  }  }  public static void main(String[] args) {  EventQueue.invokeLater(new Runnable() {  public void run() {  try {  weiwei frame = new weiwei();  frame.setVisible(true);  } catch (Exception e) {  e.printStackTrace();  }  }  });  }  /** * Create the frame. */  public weiwei() {  setTitle("\u731C\u731C\u770B\u6E38\u620FV0.1");  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  setBounds(100, 100, 645, 500);  contentPane = new JPanel();  contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));  setContentPane(contentPane);  contentPane.setLayout(null);  // 选择目录 button的处理程序  JButton btnDir = new JButton("\u9009\u62E9\u76EE\u5F55");  btnDir.addActionListener(new ActionListener() {  public void actionPerformed(ActionEvent arg0) {  JFileChooser jfc = new JFileChooser();  jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);  jfc.showDialog(new JLabel(), "选择");  File file = jfc.getSelectedFile();  tfDir.setText(file.getAbsolutePath());  if (file != null && file.isDirectory()) {  // 參考: java中File.listFiles(FileFilter) FileFilter的使用  // http://zhouzaibao.iteye.com/blog/347557 ;  // 获取目录下全部的文件  fileArray = file.listFiles();  NUM_IMG = fileArray.length;  }  }  });  btnDir.setBounds(26, 26, 93, 23);  contentPane.add(btnDir);  // 文本框,显示目录  tfDir = new JTextField();  tfDir.setEditable(false);  tfDir.setBounds(125, 27, 450, 21);  contentPane.add(tfDir);  tfDir.setColumns(10); // 选择班级 button的处理程序JButton btnClass = new JButton("\u9009\u62E9\u73ED\u7EA7");btnClass.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {JFileChooser jfc = new JFileChooser();  jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);  jfc.showDialog(new JLabel(), "选择");  File file = jfc.getSelectedFile();  tfDir.setText(file.getAbsolutePath());  if (file != null && file.isDirectory()) {  // 參考: java中File.listFiles(FileFilter) FileFilter的使用  // http://zhouzaibao.iteye.com/blog/347557 ;  // 获取目录下全部的文件  fileArray = file.listFiles();  NUM_IMG = fileArray.length; }}});btnClass.setBounds(26, 59, 93, 23);contentPane.add(btnClass);//设置提醒文字  JLabel j1 = new JLabel("猜猜我是谁,请点我相片");  j1.setBounds(5, 100, 200, 33);  this.add(j1);  // 标签,显示带推測学生姓名  final JLabel lbGuessName = new JLabel("学生姓名");  lbGuessName.setBounds(259, 91, 140, 23);  contentPane.add(lbGuessName);  // 标签,显示第一个学生相片  final JLabel lblImg1 = new JLabel("NO.1");  lblImg1.addMouseListener(new MouseAdapter() {  @Override  public void mouseClicked(MouseEvent arg0) {  if (arg0.getSource() == lblImg1) {  if ((lblImg1.getText().equals(lbGuessName.getText()))) {  JOptionPane.showMessageDialog(null, "YES!

你猜对了。", "提示", JOptionPane.PLAIN_MESSAGE); } else { JOptionPane.showMessageDialog(null, "NO!你猜错了!", "错误", JOptionPane.ERROR_MESSAGE); } } } }); lblImg1.setBounds(26, 155, 150, 200); contentPane.add(lblImg1); // 标签,显示第二个学生相片 final JLabel lblImg2 = new JLabel("NO.2"); lblImg2.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg1) { if (arg1.getSource() == lblImg2) { if ((lblImg2.getText().equals(lbGuessName.getText()))) { JOptionPane.showMessageDialog(null, "YES。你猜对了。", "提示", JOptionPane.PLAIN_MESSAGE); } else { JOptionPane.showMessageDialog(null, "NO!

你猜错了!

", "错误", JOptionPane.ERROR_MESSAGE); } } } }); lblImg2.setForeground(Color.BLACK); lblImg2.setBackground(SystemColor.inactiveCaption); lblImg2.setBounds(241, 155, 150, 200); contentPane.add(lblImg2); // 标签,显示第三个学生相片 final JLabel lblImg3 = new JLabel("NO.3"); lblImg3.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg2) { if (arg2.getSource() == lblImg3) { if ((lblImg3.getText().equals(lbGuessName.getText()))) { JOptionPane.showMessageDialog(null, "YES!你猜对了。", "提示", JOptionPane.PLAIN_MESSAGE); } else { JOptionPane.showMessageDialog(null, "NO!你猜错了!

", "错误", JOptionPane.ERROR_MESSAGE); } } } }); lblImg3.setBounds(434, 155, 150, 200); contentPane.add(lblImg3); // 再猜一次 button,点击则更新对应的三张图片 与 带推測学生姓名 final JButton btnGuessAgain = new JButton("\u518D\u731C\u4E00\u6B21"); btnGuessAgain.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (e.getSource() == btnGuessAgain) { // 假设是nextbutton Random random = new Random(System.currentTimeMillis()); // 循环三次 ImageIcon icon; // int k[] = null; for (int i = 0; i < 3; i++) { index = random.nextInt(NUM_IMG); String strTmp = fileArray[index].toString(); String filename1 = fileArray[index].getName(); try { icon = new ImageIcon(ImageIO.read(new File(strTmp))); // 从图表中获取到图片 Image image = icon.getImage(); // 缩放图像 Image smallImage = image.getScaledInstance(150, 200, Image.SCALE_FAST); // 把Image文件转化为ImageIcon icon = new ImageIcon(smallImage); if (index == NUM_IMG) index = 0; switch (i) { case 0: System.out.println(fileArray[index].getName()); // k[0]=index; lblImg1.setIcon(icon); lblImg1.setText(filename1); break; case 1: System.out.println(fileArray[index].getName()); lblImg2.setIcon(icon); lblImg2.setText(filename1); // k[1]=index; break; case 2: System.out.println(fileArray[index].getName()); lblImg3.setIcon(icon); lblImg3.setText(filename1); // k[2]=index; break; } } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } @SuppressWarnings("unused") Random random1 = new Random(index); // i = index; System.out.println(fileArray[index].getName()); String filename = fileArray[index].getName(); lbGuessName.setText(filename); } }); btnGuessAgain.setBounds(223, 400, 93, 23); contentPane.add(btnGuessAgain); } }



课程实训的过程是艰辛的,本来就不是非常熟悉JAVA代码编程,仅仅能靠网络上的知识还有老师发的提示代码进行改动还有修饰。完毕《猜猜看》游戏。

基本上已经完毕。尽管执行了起来。可是仅仅是非常主要的。没有统计次数。没有弄到连接数据库或者保存文件。



转载于:https://www.cnblogs.com/zfyouxi/p/5267211.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游戏笔记本计算机购买,2021大学生买电脑,容易犯的七种错误!游戏本和轻薄本买哪个?...

要买电脑的小伙伴们&#xff0c;难道你们指望电脑很好买&#xff1f;怎么买都不会亏&#xff1f;然后只要想买&#xff0c;它就有货&#xff1f;然后怎么买都够用&#xff1f;然后只要喜欢的女孩&#xff0c;一追求就ok&#xff1f;所以今天这期视频&#xff0c;我就随便聊聊大…

gradle安装与配置_gradle相关安装

前言之前一直接触maven&#xff0c;因为换了工作的原因偶然接触了gradle。因为对gradle不太了解&#xff0c;所以在安装与使用的时候出现了这样那样的问题。gradle在Windows系统的安装与配置1、gradle的下载与安装下载链接&#xff1a;https://gradle.org/releases/。(可以根据…

java selenium (二) 环境搭建方法一

webdriver 就是selenium 2。 webdriver 是一款优秀的&#xff0c;开源的&#xff0c;自动化测试框架。 支持很多语言。 本文描述的是用java Eclipse 如何搭建环境 阅读目录首先下载好Eclipse 和配置好Java 环境变量 步骤省略&#xff0c; 请百度方法一 添加jar包 官方下载地…

arduino char*转string_Java 中 String 类的常用方法汇总

一、String 类的概念以及特性1、String 类的概念String 类代表字符串&#xff0c;在 java.lang 包中。字符串是常量 &#xff0c;用双引号引起来表示。 它的值在创建之后不能更改 。由 0 或多个字符组成&#xff0c;可以变相的理解成是一个由字符组成的数组。2、String 类的特性…

河北体检系统诚信企业推荐_应用多的隔膜计量泵价格诚信企业推荐

应用多的隔膜计量泵价格诚信企业推荐无害化处理&#xff1a;经对标&#xff0c;注意药剂量可以适当降低&#xff0c;能降低药剂量的单位&#xff0c;反之降低。车用齿轮箱定位测量仪与计量泵计量无关&#xff0c;关键在于他们都是直线运动&#xff0c;动力输出的横轴主运动&…

it计算机哪些专业术语,IT之家学院:笔记本电脑专业术语科普

IT之家网友现在为大家整理了一些在笔记本电脑商的专业术语解释&#xff0c;比如触摸屏、触摸板、指纹识别等具体涵义。触摸屏电阻式触摸屏是在强化玻璃表面分别涂上两层OTI 透明氧化金属电层&#xff0c;两层之间用细小的透明隔离点隔开。外层OTI涂层作导电体&#xff0c;内层O…

ideajava目录显示类成员_面试:C++不可继承类

作者&#xff1a;wxquare链接&#xff1a;https://www.cnblogs.com/wxquare/p/7280025.html面试中可能遇到让设计一个无法被继承的类。最简单的实现是将该类的构造函数设置为私有的&#xff0c;然后通过静态成员函数调用私有构造函数实例化对象&#xff0c;这样的类确实不可继承…

c++ 三维数组 初始化_013 JAVA 多维数组及数组的拷贝、冒泡排序、二分法查找...

1.多维数组多维数组的元素又是数组&#xff0c;可以有二维、三维、甚至更多维数组1.1二维数组的声明&#xff1a;数据类型 [][] new 数据类型[一维长度][二维长度]public class Test01 {public static void main(String[] args) {//一维数组的静态初始化 数据类型[] 数组名 …

自考计算机成绩,自考成绩计算机中是什么意思?

你说电脑是什么意思&#xff1f;计算机等级考试有两种&#xff0c;一种是全国高校计算机水平考试(CCT)&#xff0c;另一种是全国计算机等级考试(NCRE)。你对这两种测试了解多少&#xff1f;1什么是CCT&#xff1f;CCT的全称是“全国高校计算机水平考试”&#xff0c;让人感觉像…

httpservletrequest 设置请求头_请求和常用对象

## 一、主要内容![](https://raw.githubusercontent.com/Cushier/picture-java/master/middle/20190712150414.png)## 二、核心目标理解几个常用对象的意义和作用掌握几种请求的发出方式掌握数据的发送和接收方式掌握跳转方式掌握乱码的解决## 三、请求的方式要访问服务器首先需…

from mysql partition select_爬虫(九十九)mysql详解二

**mysql中字段的常见类型: **二进制位 bit(长度)tinyint[(长度)] [有无符号unsigned] [位数低于长度时候是否填充零zerofill] 有符号表示范围-128 ~ 127, 无负号表示范围 0 ~ 255; 可用tinyint(1)来模拟boolean类型; *整型中的长度不做限制用, 仅仅做显示用, 即长度大于位数时候…

服务器训练数据 关闭终端,一文明白使用nohup将服务器训练程序后台运行不关闭+随时通过查看训练情况输出与visdom可视化...

使用nohup将训练程序后台不间断运行随时查看训练情况输出与可视化使用服务器进行远程训练由于笔者经常需要使用服务器进行训练&#xff0c;且有些模型训练起来需要很长的时间&#xff0c;如Mask模型&#xff0c;故经常需要长期跑程序。由于我使用的是ssh登录&#xff0c;因此断…

v-for 获取数组key value_Vue之路 | 05von、vif、vfor

点击左上方“熊吱”关注我们吧&#xff01;1事件监听在开发中&#xff0c;需要监听用户发生的事件&#xff0c;如点击、拖拽、键盘操作等&#xff0c;在Vue中&#xff0c;使用v-on指令绑定事件监听器。v-on的语法糖为&#xff1a;v-on基本操作在下面代码中&#xff0c;使用了v-…

c++输出txt格式循环一组数据后换行再循环一次_numpy、pandas以及用pandas做数据分析的案例...

本文也是秦路老师python教程的学习笔记。这篇也是发给超哥看的&#xff1a;很多人说python很简单很好学&#xff0c;也有很多人说python没有java和c的功能强大。但是这都不重要&#xff0c;重要的是我们想学了&#xff0c;想画图也好做数据分析也罢&#xff0c;想学了就直接开始…

gin context和官方context_Go语言gin框架从入门到精通(3)

gin的渲染1 各种数据格式的响应json、结构体、XML、YAML类似于java的properties、ProtoBuf分别对所有数据格式举个列子func main() {r : gin.Default() ​//1. json响应r.GET("/someJSON", func(c *gin.Context) {c.JSON(200,gin.H{"message":"someJS…

cas .net 重定向循环_接口测试平台接入企业cas(一)

cas系统简介提供运营系统的 SSO 和 access control功能。类似百度的UC。CAS 是 Yale 大学发起的一个开源项目&#xff0c;旨在为 Web 应用系统提供一种可靠的单点登录方法&#xff0c;CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。官方网站&#xff1a;https://www.apereo…

虚拟机安装rsync服务器配置,虚拟机安装rsync服务器配置

虚拟机安装rsync服务器配置 内容精选换一换在分布式HA部署场景下&#xff0c;ASCS主备节点通过共享盘实现数据同步。本章节指导用户将ASCS主节点的数据盘绑定给ASCS备节点并为ASCS主备节点绑定浮动IP。已在SAP ASCS主备节点之间进行过相互的SSH跳转操作。绑定共享盘创建浮动IP并…

程序包android.support.annotation不存在_efcore技巧贴也许有你不知道的使用技巧

前言.net 环境近些年也算是稳步发展。在开发的过程中&#xff0c;与数据库打交道是必不可少的。早期的开发者都是DbHelper一撸到底&#xff0c;到现在的各种各样的ORM框架大行其道。孰优孰劣谁也说不清楚&#xff0c;文无第一武无第二说的就是这个理。没有什么最好的&#xff0…

centos系统云服务器,Centos系统怎么进云服务器

Centos系统怎么进云服务器 内容精选换一换CentOS 7.5版本操作系统的弹性云服务器默认关闭SELinux功能。通过/etc/selinux/config开启SELinux功能后&#xff0c;在输入密码时&#xff0c;会出现无法登录的问题。如果业务需要开启SELinux 功能&#xff0c;请参照本节内容进行配置…

applicationproperties不是小叶子_为何“砂糖桔”是带着叶子出售?原来其中有着“猫腻”,涨知识了...

大家好&#xff0c;我是你们的好朋友童童&#xff0c;生活中不止有眼前的苟且&#xff0c;还有诗和梦想。童童每天都给大家分享有趣实用的小知识&#xff0c;有什么意见或者建议都可以和童童交流&#xff0c;喜欢我们的可以关注呦。一起和童童来看看今天的小知识吧。随着春节的…