《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,一经查实,立即删除!

相关文章

小凯机器人软件_Cruzr-Cruzr(机器人控制软件)下载 v1.5.20190706.48官方版--pc6下载站...

Cruzr客户端是这款智能云平台商用服务机器人Cruzr的配套软件&#xff0c;多台设备&#xff0c;一键多控&#xff0c;配套远程多机集控系统软件可以进行脚本、地图、视频等批量管理&#xff0c;可实现多台设备异地集中控制、全方位广告投放和同时支持自主巡逻以及指令控制巡逻。…

游戏笔记本计算机购买,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/。(可以根据…

android tag 快捷_Android Studio快捷键使用

logt 生成 TAG标签private static final String TAG "MainActivity";logm 打印方法具体日志Log.d(TAG, "onCreate() called with: " "savedInstanceState [" savedInstanceState "]");logd 打印Log.d()日志 loge logi logw......…

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

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

python拆分excel的sheet为单文件_pandas处理excel一个sheet拆分为多个sheet

指定某一列作为拆分依据,pandas如何把一个excel的一个sheet拆分为多个sheet呢&#xff1f;具体思路如下&#xff1a; 1、读取excel文件获取DataFrame对象df。 2、获取指定列的Series对象&#xff0c;去重该指定列得到分类。 3、循环分类对df做布尔判断写入新的excel。 具体实现…

jquery 树形框 横_利用jQuery设计横/纵向菜单

在网页中&#xff0c;菜单扮演着“指路者”的角色。如何设计一个人性化的菜单呢&#xff0c;下面小编带着大家一起做。效果图&#xff1a;设计历程&#xff1a;1.首先利用html中的和标签进行嵌套&#xff0c;搭起一个整体的框架。如下图所示&#xff1a;Html代码&#xff1a;横…

word和html互换,word与html互转(2) -- html转word

使用忠告使用该方式进行xhtml到word的转换, 简单转换是可以, 但是可能并没有想象中那么满意, 转换出来的word格式并不完美, 比如目录和标题都会丢失, 标题显示看起来一样, 但是是用正文加粗和加大字号来显示的. 毕竟word是一种文档格式, 而html是一种标记性语言, 要想实现完美兼…

2016年3月13日02:03:53

最近状态很糟糕&#xff0c;知道原因但是却又道不清说不明、、&#xff08;也许一句话就可以说明了&#xff1a;毕业季&#xff09; 自身存在太多太多问题了。 平时自己没怎么发现&#xff0c;在这一个多月的时间里&#xff0c;觉得自己完完全全变了一个人了&#xff0c;连我自…

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

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

airtest测试网页_Airtest

软件简介Airtest是一个跨平台的UI自动化测试框架&#xff0c;适用于游戏和App。目前支持Windows和Android平台&#xff0c;iOS支持正在开发中。Airtest提供了跨平台的API&#xff0c;包括安装应用、模拟输入、断言等。 基于图像识别技术定位UI元素&#xff0c;你无需嵌入任何代…

html中的ppt文字不清晰,HTML页面的文字布局与文字效果.ppt

无序列表是一种“项目符号列表”。其中的项目都带有项目符号前缀。该列表包含在无序列表标记.. 内。列表中的每个项目都使用列表标记进行标记&#xff0c;其中LI表示List Item(列表项)。关闭标记是可选的。 输出时每一清单条目缩进&#xff0c;并且以黑点标示 注意清单条目不需…

R文件丢失

1.xml中有错误 2.未选中自动生成 解决&#xff1a; 检查代码&#xff0c;删除更目录后再生成转载于:https://www.cnblogs.com/childyngy/p/5271579.html

python读取配置文件获取所有键值对_python读取配置文件

转载&#xff1a;https://my.oschina.net/u/3041656/blog/793467 配置文件作为一种可读性很好的格式&#xff0c;非常适用于存储程序中的配置数据。在每个配置文件中&#xff0c;配置数据会被分组&#xff08;比如"config"和”cmd“&#xff09;.每个分组在其中指定对…

python调用numpy视频_Numpy的文件输入和输出使用

本课程讲解现在工业界和学术界流行的机器学习算法的相关知识&#xff0c;以及如何用python去实现这些算法。算法的讲解包括supervised learning(有监督式学习)和unsupervised learning(无监督式学习)两个部分。其中supervised learning包括classification(分类)和regression(回…

嵌入式软件工程师笔试题

1 . 用预处理指令 #define 声明一个常数&#xff0c;用以表明 1年中有多少秒&#xff08;忽略闰年问题&#xff09; #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 2 . 写一个 "标准"宏 MIN &#xff0c;这个宏输入两个参数并返回较小的一个。 #define MIN(A,B)&…

盐城工学院计算机基础试卷,大学计算机基础及实用软件/大学计算机基础

spContent大学计算机基础及实用软件是人文学院、外语学院、经济学院和管理学院所有专业学生的必修基础课程之一&#xff0c;主要讨论计算机的发展、计算机系统及组成原理、掌握Windows7系统基本操作、熟练掌握Office 2010的基本操作、了解因特网基础与简单应用&#xff0c;本课…

如何用python写脚本_【按键教程】用python写脚本 另附垫材24与变奏22的实现

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 二、脚本中需要些什么 以PE10炮为例 #!/usr/bin/python #对mac/linux用户&#xff0c;可以点击脚本文件即运行 # -*- coding: utf-8 -*- #声明文字编码&#xff0c;在脚本用汉字时必备&#xff0c;全用英文也推荐写上 import thre…

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

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

CSS中position的4种定位详解

大家都知道&#xff0c;css中的position有4种取值&#xff0c;分别是static、fixed、relative、absolute。 详细解释&#xff1a; static&#xff1a;相当于没有定位&#xff0c;元素会出现在正常的文档流中。 fixed&#xff1a;元素框的表现类似于absolute&#xff0c;但是fix…