⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 406819eb9c5f001c198ed5adfcd67773

📁 QQ连连看游戏源码。完全仿照QQ游戏中的连连看制作的单机版游戏。
💻
字号:
/*
 * author:Mandy
 * date:2007-09-03
 * all the events of the operational buttons, except the buttons in the map, are handled in this file   
 */
package cn.nawang.test;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.*;
//import javax.swing.event.*;
import javax.swing.Timer;
import java.text.DecimalFormat;
import sun.audio.*;
import java.io.*;

public class EventHandler implements ActionListener
{
	public UI FrameUI;
	public EventHandler(UI FrameUI)
	{
		this.FrameUI = FrameUI;
	}
	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource() == this.FrameUI.startBtn)
			startBtnClick();
		else if(e.getSource() == this.FrameUI.refreshBtn)
			refreshBtnClick();
		else if(e.getSource() == this.FrameUI.hintBtn)
			hintBtnClick();
		else if(e.getSource() == this.FrameUI.bombBtn)
			bombBtnClick();
		else if(e.getSource() == this.FrameUI.showBtn)
			showBtnClick();
		else if(e.getSource() == this.FrameUI.aboutBtn)
			aboutBtnClick();
		else if(e.getSource() == this.FrameUI.settingBtn)
			settingBtnClick();
		else if(e.getSource() == this.FrameUI.helpBtn)
			helpBtnClick();
	}
	public void startBtnClick()
	{
		if(!FrameUI.isRunning)
		{
			//start to time
			FrameUI.time = 0;
			TimeWork startCount = new TimeWork();
			FrameUI.timer = new Timer(100, startCount);
			FrameUI.timer.start();
			
			//play the background music
			this.playMusic("bg.mid");
			
			//layout the block image
			int array[] = new int[170];
			for(int i=0; i<FrameUI.level; i++)
			{
				array[i*4] = i+1;
				array[i*4+1] = i+1;
				array[i*4+2] = i+1;
				array[i*4+3] = i+1;
			}
			Random ran = new Random();
			int temp = 0;
			int k = 0;
			for(int j=array.length; j>0; j--)
			{
				k = ran.nextInt(j);
				temp = array[k];
				array[k] = array[j-1];
				array[j-1] = temp;
			}
			for(int i=0; i<10; i++)
			{
				for(int j=0; j<17; j++)
				{
					FrameUI.map[i][j] = array[i*17+j];
				}
			}
			int imageNo = 0;
			for(int i=0; i<10; i++)
			{
				for(int j=0; j<17; j++)
				{
					imageNo = FrameUI.map[i][j];
					FrameUI.imageBtn[i][j] = new JButton();
					if(FrameUI.map[i][j]>0)
					{
						FrameUI.imageBtn[i][j].setIcon(UIBuilder.getIcon(imageNo+".gif"));
						FrameUI.imageBtn[i][j].setBackground(new Color(0x374d76));
						FrameUI.imageBtn[i][j].setBorderPainted(false);
						FrameUI.imageBtn[i][j].setEnabled(true);
					}	
					else
						{
							FrameUI.imageBtn[i][j].setIcon(null);
							FrameUI.imageBtn[i][j].setBackground(new Color(0x374d76));
							FrameUI.imageBtn[i][j].setEnabled(false);
							FrameUI.imageBtn[i][j].setBorderPainted(false);
						}
					FrameUI.contentPanel.add(FrameUI.imageBtn[i][j]);
				}
			}
			//FrameUI.startBtn.setEnabled(false);
			FrameUI.isRunning = true;
		}
		else
		{
			JOptionPane.showMessageDialog(this.FrameUI.mainFrame, "本局游戏尚未结束,不能开始!");
		}
	}
	public class TimeWork implements ActionListener
	{
		public void actionPerformed(ActionEvent event)
		{
			DecimalFormat timeFormat = new DecimalFormat("###.0");
			FrameUI.time = (float)(FrameUI.time + 0.1);
			if(FrameUI.time < 1)
				FrameUI.timeLabel.setText("  Time: 000"+timeFormat.format(FrameUI.time));
			else if(FrameUI.time >1 && FrameUI.time<10)
				FrameUI.timeLabel.setText("  Time: 00"+timeFormat.format(FrameUI.time));
			else if(FrameUI.time<100 && FrameUI.time>10)
				FrameUI.timeLabel.setText("  Time: 0"+timeFormat.format(FrameUI.time));
			else
				FrameUI.timeLabel.setText("  Time: "+timeFormat.format(FrameUI.time));
		}
	}
	public void playMusic(String filename)
	{
		try
		{
			FileInputStream fileau = new FileInputStream("cn/nawang/sound/"+filename);
			AudioStream as = new AudioStream(fileau);
			AudioPlayer.player.start(as);
		}
		catch (Exception e)
		{
		}
	}
	public void refreshBtnClick()
	{
		JOptionPane.showMessageDialog(this.FrameUI.mainFrame, "refreshBtn Clicked!!");
	}
	public void hintBtnClick()
	{
		JOptionPane.showMessageDialog(this.FrameUI.mainFrame, "hintBtn Clicked!!");
	}
	public void bombBtnClick()
	{
		JOptionPane.showMessageDialog(this.FrameUI.mainFrame, "bombBtn Clicked!!");
	}
	public void showBtnClick()
	{
		JOptionPane.showMessageDialog(this.FrameUI.mainFrame, "showBtn Clicked!!");
	}
	public void settingBtnClick()
	{
		FrameUI.setupDialog.setVisible(true);
	}
	public void aboutBtnClick()
	{
		FrameUI.aboutDialog.setVisible(true);
	}
	public void helpBtnClick()
	{
		FrameUI.helpDialog.setVisible(true);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -