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

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

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. 《JAVA程序设计》实训第一天——《猜猜看》游戏

    课程实训是做一个猜猜看的小游戏.对于对代码不熟悉不了解的我来说的确挺难的.可是我还是会努力的. import java.awt.EventQueue; import javax.swing.JFram ...

  2. 《JAVA程序设计》实训第二天——《猜猜看》游戏

    课程实训第二天,我在第一天的基础上去导入目录,第一天那时候一直改动都是改动不到,上网找了相关的知识.问了同学该怎么去导入显示图片. public class weiwei extends JFrame ...

  3. Java课程设计(2019版)

    参考资料 Java课程设计参考资料(2018-12-26更新) Java课程设计常见问题(程序部署.数据库.JSP) 项目开发参考-阿里巴巴Java开发手册(正式版) 更多参考资料请查看QQ群文件中的 ...

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

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

  5. Android实训案例(四)——关于Game,2048方块的设计,逻辑,实现,编写,加上色彩,分数等深度剖析开发过程!

    Android实训案例(四)--关于Game,2048方块的设计,逻辑,实现,编写,加上色彩,分数等深度剖析开发过程! 关于2048,我看到很多大神,比如医生,郭神,所以我也研究了一段时间,还好是研究 ...

  6. java课程设计(计算器)

    JAVA课程 设 计 报 告 1206401-18   瞿杰 一.设计时间 2013年6月 24日-----6月28日 二.设计地点 湖南城市学院实验楼计算机506机房 三.设计目的 1.巩固学习VB ...

  7. Java课程设计——博客作业教学数据分析系统(201521123082 黄华林)

    Java课程设计--博客作业教学数据分析系统(201521123082 黄华林) 一.团队课程设计博客链接 博客作业教学数据分析系统(From:网络五条狗) 二.个人负责模块或任务说明 1.网络爬虫 ...

  8. Java 课程设计 "Give it up"小游戏(团队)

    JAVA课程设计 "永不言弃"小游戏(From :Niverse) 通过Swing技术创建游戏的登陆注册界面,使用mySQL数据库技术完成用户的各项信息保存和游戏完成后的成绩保存. ...

  9. Java课程设计----仿Windows标准型计算器

    JAVA课程设计 仿Windows标准型计算器(By Yanboooooooo) 一.团队介绍: 连燕波[组长]:网络1513学生. 张文博[组员]:网络1513学生. 二.项目git地址 码云项目地 ...

  10. java课程设计团队博客

    java课程设计 本组主题:Calculator(简易计算器) 功能要求:基本实现计算器的功能,可运行加.减.乘.除.求倒数.求平方根.求百分号运算.正负数运算等 一.团队介绍 团队名称:熬夜做不出随 ...

随机推荐

  1. jrae源码解析(二)

    本文细述上文引出的RAECost和SoftmaxCost两个类. SoftmaxCost 我们已经知道,SoftmaxCost类在给定features和label的情况下(超参数给定),衡量给定权重( ...

  2. Swift - 04 - 浮点型

    import UIKit var str = "Hello, playground" // 显式定义浮点型常量 let PI:Float = 3.141592612312312 l ...

  3. Swift - 03 - 整数类型

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  4. WPF实现摄像头镜像翻转

    之前的项目需要镜像翻转摄像头视频,使用Aforge.Net来处理视频. 一开始考虑直接从Aforge.Net读取没一帧视频图片,然后复制给WPF的Image控件,这种方法基本很卡,所以放弃了. 考虑到 ...

  5. 《C# 并发编程 · 经典实例》读书笔记

    前言 最近在看<C# 并发编程 · 经典实例>这本书,这不是一本理论书,反而这是一本主要讲述怎么样更好的使用好目前 C#.NET 为我们提供的这些 API 的一本书,书中绝大部分是一些实例 ...

  6. How to scroll the window using JQuery $.scrollTo() function

    $('html, body').animate({scrollTop: $("#page").offset().top}, 2000); http://stackoverflow. ...

  7. FLEX 网格布局及响应式处理

    上一篇文章用Flex实现BorderLayout,这一章我们来实现常用的网格布局和响应式处理. 首先我们定义HTML结构,主Box为grid,每项为grid-cell,下面就是我们HTML代码结构. ...

  8. ThinkPHP 发送post请求

    function post($url, $param=array()){ if(!is_array($param)){ throw new Exception("参数必须为array&quo ...

  9. jquery获取浏览器的高度和宽度

    <script type="text/javascript"> $(document).ready(function() { alert($(window).heigh ...

  10. springmvc基于xml配置文件

    web.xml 配置文件 <!-- springmvc 配置入口 --> <servlet> <servlet-name>mvc-dispatcher</se ...