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

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

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

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

最新文章

  1. meta 详解,html5 meta 标签日常设置
  2. 一个语句创建Oracle所有表的序列
  3. MS SQL 日常维护管理常用脚本(二)
  4. PHP性状的使用
  5. 网站禁止右键点击js
  6. 飞凌OK6410开发板SDIO无线8189WIFI模块驱动移植
  7. 理解MySQL——复制(Replication)
  8. 读取svg图片为UIBezierPath,开心做动画
  9. 【多端应用开发系列0.0.0——之总序】xy多端应用开发方案定制
  10. Robberies(HDU 2955 DP01背包)
  11. 数据结构中La表的数据合并到Lb表中
  12. 模板方法模式(Tempalte Method Pattern)
  13. windows凭据管理
  14. [微信跳转链接]之WAP跳转微信内指定页面
  15. Mysql postgresql 行列转换
  16. BBS论坛(三十二)
  17. Jumbo frame与MTU
  18. php(一)搭建php开发环境
  19. 【算法导论】【排序】—— 计数排序(counting sort)
  20. javascript给定了日期如何获得星期几

热门文章

  1. [个人原创]关于java中对象排序的一些探讨(二)
  2. 巧用Session Manager还原Firefox丢失会话
  3. 看源码之Adapter和AdapterView之间的关系
  4. JDBC驱动汇总
  5. ubuntu 的远程桌面
  6. 前端面试题第二波,要offer的看过来~
  7. Ant快速入门(四)-----Ant的任务(Task)
  8. SQL Server T-SQL高级查询1
  9. Es kibana
  10. mysql rr和rc区别