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

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

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代码编程,仅仅能靠网络上的知识还有老师发的提示代码进行改动还有修饰。完毕《猜猜看》游戏。

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

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

  1. C++课程设计实训_基于多态书籍信息管理系统的设计与实现、附源码、有过程截图

    C++课程设计实训_基于多态书籍信息管理系统的设计与实现.附源码,有过程截图 书籍信息管理系统的设计与实现(基于多态) 学生姓名: 学 号: 指导老师: 所 在 系: 专 业: 班 级: C++课程设 ...

  2. android课程设计实训目的,汽车专业实习目的与意义

    实习目的及意义 1.通过生产实习加深对汽车运用与维修专业认识,巩固专业思想,激发学习热情. 2.熟悉汽车修理环境.修理工具.为以后走上工作岗位积累一定的知识与经验. 3.开拓我们的视野,增强专业意识, ...

  3. C++课程设计实训报告

                          南阳理工学院·软件学院 课程设计报告 课程名称: C++面向对象程序设计(课程设计) 课题名称: 新生基本信息统计软件 姓    名: 学    号: 专 ...

  4. 【数据结构】-大二数据结构与算法课程设计实训报告

    采花生问题 1.1 需求分析 1.1.1 题目概要 给一矩阵,按贪心思路最多能采多少花生并在规定时间内返回. 1.1.2 题目要求 给定一块花生田的大小和花生的分布,在限定时间内,小Q最多可以采到多少 ...

  5. 【C语言】课程设计实训——人事管理系统

    目录 题目: 总体设计 详细设计 系统实现 题目 1.需求分析 人事档案信息采用文件存储,要提供文件的输入输出操作:根据学院人事的变动情况,可添加或删除记录,因而要提供文件的添加删除操作:能根据编号和 ...

  6. 课程设计实训-3 英文词典

    问题及代码 做一个简单的电子词典.在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用'\t'隔开.编程序,将文件中的内容读到两个数组e[]和c[]中, ...

  7. java课程设计(第三版)魔板游戏源代码(可实现英雄榜功能)

    有两种玩法(数字和图片).可选择初级和高级模式.可查看英雄榜. 1. Block.java import javax.swing.*; import java.awt.*; public class ...

  8. 基于java web的酒店管理系统(Java毕业设计)(Java课程设计)

    源码编号:B-I16点击查看(分类规则) 项目类型:Java web项目/Java EE项目(非开源) 项目名称:基于JSP+Servlet的酒店管理系统 当前版本:V4.0版本 难度等级:✩✩ 复杂 ...

  9. Java课程设计(2020版)

    目录 参考资料 一. 题目选择说明 1. 传统题目 2. 综合性题目(有一定挑战性.有趣.实用) 2.1题目特点: 2.2 常见类库与技术参考资料 2.2.1 jsoup 2.2.2 HttpComp ...

  10. Java课程设计—拿火柴小游戏

    这是我的Java课程设计,做的是拿火柴小游戏.要求是人机互拿火柴,拿到最后一根火柴者赢.最主要的就是处理好多线程,其他的就是添加组件啥的,那个不难,我就给出以下多线程的代码吧. 1 import ja ...

最新文章

  1. script 有哪个属性可以让它不立即执行 defer,async
  2. HTML5的绝活:巧用Canvas制作会动的时钟
  3. 卓越管理的秘密(Behind Closed Doors)
  4. HDU 1003 Maxsum
  5. thinkphp5.1 php7,空白目录 · 细数ThinkPHP5.1.7版本新特性 · 看云
  6. 图解分布式架构的演进过程!
  7. 前台用js、jquery出现错误很多是由于IE缓存
  8. java mysql order by,java-使用LIMIT和MySQL进行ORDER BY
  9. 校招刷题---java选择题笔记02
  10. leetcode python3 简单题58. Length of Last Word
  11. PYTHON博客记录0602
  12. 如何使用计算机检测网络正常使用,如何测试网速? 本地测网速的几种方法分享...
  13. 晶振负载电容和谐振电容的计算方法
  14. Jackson注解-@JsonNaming
  15. 云服务器文件同步,和云服务器同步文件
  16. 【今日早报】2019/06/17
  17. 基于“把点开活”的面试理论
  18. nokia5110液晶初始化
  19. 吴军北京来信:人工智能应该变成通识教育,区块链不是炒概念
  20. 【opencv 450 Image Processing】Hit-or-Miss

热门文章

  1. mysqlclient==1.3.7对应mysql版本_Python通过MySQLdb访问操作MySQL数据库
  2. 一文看懂Python多进程与多线程编程(工作学习面试必读)
  3. 捡到vivo手机怎么清除账号_大学保安两天两次跳湖为路人捡手机,您怎么看?...
  4. 查询字符串位置_带合并单元格的数据查询套路,有用
  5. IPV6地址校验(java)
  6. 笔记-计算机网络基础-TCP/IP vs OSI
  7. Vue中使用Openlayers加载Geoserver发布的ImageWMS
  8. SpringBoot中通过重写WebMvcConfigurer的addCorsMapping方法实现后台服务解决跨域问题
  9. Redis的持久化机制-RDB方式和AOF方式
  10. AndroidStudio更新时报错:Connection Error,Temp directory inside installation