《Java程序设计》第17周课程设计:《猜猜看》游戏 第四天

来源:互联网 发布:小正太捏脸数据 编辑:程序博客网 时间:2024/05/05 14:08

今天我为了实现按钮判断进行了少量的调整,利用输出的text进行判断是否其图片与标记的名字相对应;

可惜我还不能在上方对话框显示名字;


图片旁边的三个黑点其实获取的图片的名称,因为避免被看见我把他隐藏了;

try {icon = new ImageIcon(ImageIO.read(new File(strTmp)));} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}                       Image image = icon.getImage(); // 从图表中获取到图片                       Image smallImage = image.getScaledInstance(170,200,Image.SCALE_FAST);// 缩放图像  icon = new ImageIcon(smallImage);//把Image文件转化为ImageIcon                    lblImg1.setIcon(icon);   lblImg1.setText(strTmp);  
lblImg1.setText(strTmp);

插入这句话获取那图片的文件名并显示,但我隐藏了;

接下来我要完善在图片上标出要猜的图片主人的信息,希望明天可以好好努力达成目标。

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.JFileChooser;import javax.swing.JButton;import javax.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.JLabel;import java.awt.Color;import java.awt.Component;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.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FilenameFilter;import java.io.IOException;import java.util.EventObject;import java.util.Random;public class Guess01 extends JFrame {/** *  */private static final long serialVersionUID = 1L;String strPath = "";    //文件夹路径String strFileName = "";    //文件名称File[] fileArray;   // 文件夹下所有文件int NUM_IMG = 0;    // 文件总数目int index   = 0;    // 当前文件的序号  int index1 =0;int index2 =0;private JPanel contentPane;private JTextField tfDir;private JTextField tfClass;/** * Launch the application. */public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {Guess01 frame = new Guess01();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/** * Create the frame. */public Guess01() {setTitle("\u731C\u731C\u770B\u6E38\u620FV0.1");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 645, 409);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);// 选择目录 按钮的处理程序final 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.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);jfc.showDialog(new JLabel(), "选择");File file=jfc.getSelectedFile();                    tfDir.setText(file.getAbsolutePath());                                        strPath = file.getAbsolutePath();strFileName = jfc.getSelectedFile().getName();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, 363, 21);contentPane.add(tfDir);tfDir.setColumns(10);// 选择班级 按钮的处理程序final 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.setFileSelectionMode(JFileChooser.FILES_ONLY);jfc.showDialog(new JLabel(), "选择");File file=jfc.getSelectedFile();  tfClass.setText(file.getAbsolutePath()); strPath = file.getAbsolutePath();  strFileName = jfc.getSelectedFile().getName();  if (file.getName().endsWith(".txt")){  // 参考: java中File.listFiles(FileFilter) FileFilter的使用   //  http://zhouzaibao.iteye.com/blog/347557 ;  }   }                                                                 });btnClass.setBounds(26, 59, 93, 23);contentPane.add(btnClass);// 文本框,显示班级文件tfClass = new JTextField();tfClass.setEditable(false);tfClass.setBounds(125, 60, 363, 21);contentPane.add(tfClass);tfClass.setColumns(10);// 标签,显示带猜测学生姓名final JLabel lbGuessName = new JLabel("\u59D3\u540D");lbGuessName.setBounds(259, 91, 200, 23);contentPane.add(lbGuessName);// 标签,显示第一个学生相片final JLabel lblImg1 = new JLabel("\u56FE\u72471");lblImg1.setBackground(Color.RED);this.add(lblImg1);lblImg1.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent arg0) {                        if(arg0.getSource()==lblImg1){if((lblImg1.getText().equals(lbGuessName.getText()))){JOptionPane.showMessageDialog(null,"恭喜你猜对了","提示",JOptionPane.PLAIN_MESSAGE);}else {JOptionPane.showMessageDialog(null,"你猜错了!","错误",JOptionPane.ERROR_MESSAGE);}  }                                                                 }});lblImg1.setBounds(26, 151, 183, 178);contentPane.add(lblImg1);// 标签,显示第二个学生相片final JLabel lblImg2 = new JLabel("\u56FE\u72472");lblImg2.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent arg1) {                     if(arg1.getSource()==lblImg2){if((lblImg2.getText().equals(lbGuessName.getText()))){JOptionPane.showMessageDialog(null,"恭喜你猜对了","提示",JOptionPane.PLAIN_MESSAGE);}else {JOptionPane.showMessageDialog(null,"你猜错了!","错误",JOptionPane.ERROR_MESSAGE);}  }                                                                 }            });lblImg2.setForeground(Color.BLACK);lblImg2.setBackground(SystemColor.inactiveCaption);lblImg2.setBounds(241, 155, 183, 172);contentPane.add(lblImg2);// 标签,显示第三个学生相片final JLabel lblImg3 = new JLabel("\u56FE\u72473");lblImg3.addMouseListener(new MouseAdapter() {@Override            public void mouseClicked(MouseEvent arg2) {                     if(arg2.getSource()==lblImg3){if((lblImg3.getText().equals(lbGuessName.getText()))){JOptionPane.showMessageDialog(null,"恭喜你猜对了","提示",JOptionPane.PLAIN_MESSAGE);}else {JOptionPane.showMessageDialog(null,"你猜错了!","错误",JOptionPane.ERROR_MESSAGE);}  }                             }});lblImg3.setBounds(434, 155, 185, 172);contentPane.add(lblImg3);// 再猜一次 按钮,点击则更新相应的三张图片 与 带猜测学生姓名JButton btnGuessAgain = new JButton("\u518D\u731C\u4E00\u6B21");btnGuessAgain.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {ImageIcon icon = null;ImageIcon icon1 = null;ImageIcon icon2 = null;Random random = new Random(System.currentTimeMillis()); index = random.nextInt(NUM_IMG); String strTmp = fileArray[index].toString();index++;if(index==NUM_IMG)                index =0;                try {icon = new ImageIcon(ImageIO.read(new File(strTmp)));} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}                       Image image = icon.getImage(); // 从图表中获取到图片                       Image smallImage = image.getScaledInstance(170,200,Image.SCALE_FAST);// 缩放图像  icon = new ImageIcon(smallImage);//把Image文件转化为ImageIcon                    lblImg1.setIcon(icon);   lblImg1.setText(strTmp);  index = random.nextInt(NUM_IMG); String strTmp1 = fileArray[index].toString();index++;if(index==NUM_IMG)                index =0;                    try {  icon1 = new ImageIcon(ImageIO.read(new File(strTmp1)));} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}                       Image image1 = icon1.getImage(); // 从图表中获取到图片                       Image smallImage1 = image1.getScaledInstance(170,200,Image.SCALE_FAST);// 缩放图像  icon1 = new ImageIcon(smallImage1);//把Image文件转化为ImageIcon                    lblImg2.setIcon(icon1); lblImg2.setText(strTmp1);  index = random.nextInt(NUM_IMG); String strTmp2 = fileArray[index].toString();index++;if(index==NUM_IMG)                index =0;                     try {     icon2 = new ImageIcon(ImageIO.read(new File(strTmp2)));} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}                       Image image2 = icon2.getImage(); // 从图表中获取到图片                       Image smallImage2 = image2.getScaledInstance(170,200,Image.SCALE_FAST);// 缩放图像  icon2 = new ImageIcon(smallImage2);//把Image文件转化为ImageIcon                    lblImg3.setIcon(icon2);lblImg3.setText(strTmp2);  //String filename=fileArray[index].getName();// E:\photos\201211671232左楒颖.jpg// E:\photos\201211671222魏明星.jpg// E:\photos\201211671302陈静.jpg//String[] fileArray1 = {strTmp, strTmp1, strTmp2};// 生成一个0-2之间的随机整数 index//lbGuessName.setText(fileArray1[index]);}});btnGuessAgain.setBounds(223, 337, 93, 23);contentPane.add(btnGuessAgain);}}


0 0