PlayMouse.java程序 package com.briup.day25;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax
package com.briup.day25; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.Timer; public class PlayMouse implements ActionListener { private JFrame frame; private JPanel north, center; private JComboBoxbox; private JLabel timeLabel, timeValueLabel, gradeLabel, gradeValueLabel; private JButton startButton; private JButton[] btns; private ImageIcon img; private Timer oldTimer; private Timer newTimer; private Timer mouseTime; private int level; private int old_index; private String gameTime; private boolean isNew = false; public PlayMouse() { frame = new JFrame("打地鼠"); frame.setBounds(300, 300, 600, 600); frame.setResizable(false); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); initComponent(); frame.setVisible(true); } public void initComponent() { // 初始化其他组件 north = new JPanel(); center = new JPanel(); box = new JComboBox (); box.addItem("初级"); box.addItem("中极"); box.addItem("高级"); // timeLabel,timeValueLabel,gradeLabel,gradeValueLabel; gameTime = "10"; timeLabel = new JLabel("time: "); timeValueLabel = new JLabel(gameTime); gradeLabel = new JLabel("grade: "); gradeValueLabel = new JLabel("0"); startButton = new JButton("Start"); btns = new JButton[9]; for (int i = 0; i < btns.length; i++) { btns[i] = new JButton(); } setEnabledForBtns(false); img = new ImageIcon("./src/com/briup/day25/c.jpg"); // 设置布局管理器,并添加其他组件 frame.setLayout(new BorderLayout()); frame.add(north, BorderLayout.NORTH); frame.add(center); north.setLayout(new FlowLayout()); north.add(box); north.add(timeLabel); north.add(timeValueLabel); north.add(gradeLabel); north.add(gradeValueLabel); north.add(startButton); center.setLayout(new GridLayout(3, 3)); for (int i = 0; i < btns.length; i++) { center.add(btns[i]); } // 添加监听器 for (int i = 0; i < btns.length; i++) { btns[i].addActionListener(this); } box.addActionListener(this); startButton.addActionListener(this); oldTimer = new Timer(1000, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String text = timeValueLabel.getText(); int t = Integer.parseInt(text); timeValueLabel.setText(--t + ""); if (t < 0) { timeValueLabel.setText(++t + ""); oldTimer.stop(); startButton.setEnabled(true); mouseTime.stop(); box.setEnabled(true); setEnabledForBtns(false); btns[old_index].setIcon(null); } } }); newTimer = new Timer(1000, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String text = timeValueLabel.getText(); int t = Integer.parseInt(text); timeValueLabel.setText(--t + ""); if (t < 0) { timeValueLabel.setText(++t + ""); newTimer.stop(); startButton.setEnabled(true); mouseTime.stop(); box.setEnabled(true); setEnabledForBtns(false); btns[old_index].setIcon(null); } } }); } public static void main(String[] args) { new PlayMouse(); } @Override public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if (source == startButton) { startButton.setEnabled(false); setEnabledForBtns(true); oldTimer.start(); timeValueLabel.setText(gameTime); box.setEnabled(false); gradeValueLabel.setText("0"); int boxIndex = box.getSelectedIndex(); if (boxIndex == 0) { level = 1000; } else if (boxIndex == 1) { level = 700; } else if (boxIndex == 2) { level = 200; } mouseTime = new Timer(level, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { btns[old_index].setIcon(null); int index = (int) (Math.random() * 9); btns[index].setIcon(img); old_index = index; } }); mouseTime.start(); } else if(source==box){ } else { if(isNew == false){ String text = gradeValueLabel.getText(); int cent = Integer.parseInt(text); JButton btn = (JButton) source; if (btn.getIcon() != null) { gradeValueLabel.setText(++cent + ""); btn.setIcon(null); oldTimer.stop(); newTimer.start(); isNew = true; } } if(isNew == true){ String text = gradeValueLabel.getText(); int cent = Integer.parseInt(text); JButton btn = (JButton) source; if (btn.getIcon() != null) { gradeValueLabel.setText(++cent + ""); btn.setIcon(null); newTimer.stop(); oldTimer.start(); isNew = false; } } } } public void setEnabledForBtns(boolean flag) { for (int i = 0; i < btns.length; i++) { btns[i].setEnabled(flag); } } }