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

📄 20645392f661001c1933e602ece9d2a4

📁 QQ连连看游戏源码。完全仿照QQ游戏中的连连看制作的单机版游戏。
💻
📖 第 1 页 / 共 3 页
字号:
package cn.nawang.test;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JOptionPane;

public class EraseEventHandler implements ActionListener
{
	private UI FrameUI;
	public EraseEventHandler(UI FrameUI) {
		// TODO Auto-generated constructor stub
		this.FrameUI = FrameUI;
	}
	public void actionPerformed(ActionEvent e)
	{
		int i=0; 
		int j=0;
		if(FrameUI.changeBtn == null)
		{
			for(i=0; i<10; i++)
				for(j=0; j<17; j++)
				{
					if(e.getSource() == FrameUI.imageBtn[i][j])
					{
						FrameUI.changeBtn = (JButton)e.getSource();
						FrameUI.row = i;
						FrameUI.column = j;
						FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
					}
				}
		}
		else
		{
			for(i=0; i<10; i++)
				for(j=0; j<17; j++)
				{
					if(e.getSource() == FrameUI.imageBtn[i][j])
					{
						if(FrameUI.imageBtn[i][j].getIcon().toString().equals(FrameUI.changeBtn.getIcon().toString()))
						{
							if(i == FrameUI.row)         //同行
								sameRow(i,j);
							else if(j == FrameUI.column) //同列
								sameColumn(i,j);
							else 						 //有拐点
								oneCorner(i,j);
						}
						else
						{
							FrameUI.changeBtn = FrameUI.imageBtn[i][j];
							FrameUI.row = i;
							FrameUI.column = j;	
							FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
						}
					}
				}
		}
	}
	public void sameRow(int i, int j)
	{

		if(FrameUI.column < j)
		{
			if(j == FrameUI.column+1)
				erase(i,j);
			else 
			{
				int k=0;
				for(k=FrameUI.column+1; k<j; k++)
				{
					if(FrameUI.imageBtn[i][k].getIcon()!= null)
					{
						break;
					}
				}
				if(k == j)
					erase(i,j);
				else
					sameRowTwoCorner(i,j,"column<j");
			}
				
		}
		else if(FrameUI.column > j)
		{
			if(FrameUI.column == j+1)
			{
				erase(i,j);
			}
			else
			{
				int k=0;
				for(k=j+1; k<FrameUI.column; k++)
				{
					if(FrameUI.imageBtn[i][k].getIcon()!= null)
					{	
						break;
					}
				}
				if(k == FrameUI.column)
				{
					erase(i,j);
				}
				else
					sameRowTwoCorner(i,j, "column>j");
			}
		}
	
	}
	public void sameColumn(int i, int j)
	{
		if(FrameUI.row < i)
		{
			if(i == FrameUI.row+1)
			{
				erase(i,j);
			}
			else
			{
				int k=0;
				for(k=FrameUI.row+1; k<i; k++)
				{
					if(FrameUI.imageBtn[k][j].getIcon()!= null)
					{
						break;
					}
				}
				if(k == i)
					erase(i,j);
				else
					sameColumnTwoCorner(i,j, "row<i");
			}
		}
		else if(FrameUI.row > i)
		{
			if(FrameUI.row == i+1)
			{
				erase(i,j);
			}
			else
			{
				int k=0;
				for(k=i+1; k<FrameUI.row; k++)
				{
					if(FrameUI.imageBtn[k][j].getIcon()!=null)
					{
						break;
					}
				}
				if(k == FrameUI.row)
					erase(i,j);
				else
					sameColumnTwoCorner(i,j, "row>i");
			}
		}
	}
	public void oneCorner(int i, int j)
	{
		if(FrameUI.row<i && FrameUI.column<j)
		{
			if(FrameUI.imageBtn[i][FrameUI.column].getIcon()!=null)
			{
				if(FrameUI.imageBtn[FrameUI.row][j].getIcon() != null)
				{
					JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
					System.out.println("因为两个交点都有按钮");
					FrameUI.changeBtn = FrameUI.imageBtn[i][j];
					FrameUI.row = i;
					FrameUI.column = j;	
					FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
				}
				else 
				{
					topRightCornerErase1(i,j);
				}
			}
			else
			{
				if(FrameUI.imageBtn[FrameUI.row][j].getIcon() != null)
					bottomLeftCornerErase1(i,j);
				else
				{
//					if(!topRightCornerErase1(i,j))
//						bottomLeftCornerErase1(i,j);
				}
			}
		}
		else if(FrameUI.row>i && FrameUI.column<j)
		{
			if(FrameUI.imageBtn[i][FrameUI.column].getIcon()!= null)
			{
				if(FrameUI.imageBtn[FrameUI.row][j].getIcon() != null)
				{
					JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
					System.out.println("因为两个交点都有按钮");
					FrameUI.changeBtn = FrameUI.imageBtn[i][j];
					FrameUI.row = i;
					FrameUI.column = j;	
					FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
				}
				else
					bottomRightCornerErase2(i,j);
			}
			else
			{
//				if(!bottomRightCornerErase2(i,j))
//					topLeftCornerErase2(i,j);
			}
		}
		else if(FrameUI.row>i && FrameUI.column>j)
		{
			if(FrameUI.imageBtn[FrameUI.row][j].getIcon() != null)
			{
				if(FrameUI.imageBtn[i][FrameUI.column].getIcon() != null)
				{
					JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
					System.out.println("因为两个交点都有按钮");
					FrameUI.changeBtn = FrameUI.imageBtn[i][j];
					FrameUI.row = i;
					FrameUI.column = j;	
					FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
				}
				else
					topRightCornerErase3(i,j);
			}
			else
			{
//				if(!topRightCornerErase3(i,j))
//					bottomLeftCornerErase3(i,j);
			}
		}
		else if(FrameUI.row<i && FrameUI.column>j)
		{
			if(FrameUI.imageBtn[FrameUI.row][j].getIcon() != null)
			{
				if(FrameUI.imageBtn[i][FrameUI.column].getIcon() != null)
				{
					JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
					System.out.println("因为两个交点都有按钮");
					FrameUI.changeBtn = FrameUI.imageBtn[i][j];
					FrameUI.row = i;
					FrameUI.column = j;	
					FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
				}
				else
					bottomRightCornerErase4(i,j);
			}
			else
			{
//				if(!bottomRightCornerErase4(i,j))
//					topLeftCornerErase4(i,j);
			}
				
		}
	}
	public void oneWayNext(int i, int j, String location)
	{
		boolean isEmpty = true;
	//	boolean isEmptyLeft = true;
		int k=0;
		if(location.equals("topRightColumn1"))
		{
			for(k=FrameUI.row+1; k<i;k++)
			{
				if(FrameUI.imageBtn[k][j].getIcon() != null)
				{
					isEmpty = false;
					break;
				}
			}
//			if(isEmpty)
//			{
//				erase(i,j);
//				//return true;
//			}
//			else
//			{
//				JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
//				System.out.println("因为第一种情况两按钮横向距离为1,纵向距离超过1,并且右纵向距离上有按钮");
//				FrameUI.changeBtn = FrameUI.imageBtn[i][j];
//				FrameUI.row = i;
//				FrameUI.column = j;	
//				FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
//				//return false;
//			}
		}
		else if(location.equals("topRightRow1"))
		{
			for(k=FrameUI.column+1;k<j;k++)
			{
				if(FrameUI.imageBtn[FrameUI.row][k].getIcon() != null)
				{
					isEmpty = false;
					break;
				}
			}
//			if(isEmpty)
//			{
//				erase(i,j);
//				//return true;
//			}
//			else
//			{
//				JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
//				System.out.println("因为第一种情况两按钮纵向距离为1,横向距离超过1,并且上横向距离上有按钮");
//				FrameUI.changeBtn = FrameUI.imageBtn[i][j];
//				FrameUI.row = i;
//				FrameUI.column = j;	
//				FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
//				//return false;
//			}
		}
		else if(location.equals("bottomLeftColumn1"))
		{
			for(k=FrameUI.row+1; k<i; k++)
			{
				if(FrameUI.imageBtn[k][FrameUI.column].getIcon() != null)
				{
					isEmpty = false;
					break;
				}
			}
//			if(isEmpty)
//			{
//				erase(i,j);
//				//return true;
//			}
//			else
//			{
//				JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
//				System.out.println("因为第一种情况两按钮横向距离为1,纵向距离超过1,并且左纵向距离上有按钮");
//				FrameUI.changeBtn = FrameUI.imageBtn[i][j];
//				FrameUI.row = i;
//				FrameUI.column = j;	
//				FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
//				return false;
//			}
		}
		else if(location.equals("bottomLeftRow1"))
		{
			for(k=FrameUI.column+1; k<j; k++)
			{
				if(FrameUI.imageBtn[i][k].getIcon() != null)
				{
					isEmpty = false;
					break;
				}
			}
//			if(isEmpty)
//			{
//				erase(i,j);
//				return true;
//			}
//			else
//			{
//				JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
//				System.out.println("因为第一种情况两按钮纵向距离为1,横向距离超过1,并且下横向距离上有按钮");
//				FrameUI.changeBtn = FrameUI.imageBtn[i][j];
//				FrameUI.row = i;
//				FrameUI.column = j;	
//				FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
//				return false;
//			}
		}
		else if(location.equals("bottomRightColumn2"))
		{
			for(k=i+1; k<FrameUI.row; k++)
			{
				if(FrameUI.imageBtn[k][j].getIcon() != null)
				{
					isEmpty = false;
					break;
				}
			}
//			if(isEmpty)
//			{
//				erase(i,j);
//				return true;
//			}
//			else
//			{
//				JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
//				System.out.println("因为第二种情况两按钮横向距离为1,纵向距离超过1,并且右纵向距离上有按钮");
//				FrameUI.changeBtn = FrameUI.imageBtn[i][j];
//				FrameUI.row = i;
//				FrameUI.column = j;	
//				FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
//				return false;
//			}
		}
		else if(location.equals("bottomRightRow2"))
		{
			for(k=FrameUI.column+1; k<j; k++)
			{
				if(FrameUI.imageBtn[FrameUI.row][k].getIcon() != null)
				{
					isEmpty = false;
					break;
				}
			}
//			if(isEmpty)
//			{
//				erase(i,j);
//				return true;
//			}
//			else
//			{
//				JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
//				System.out.println("因为第二种情况两按钮纵向距离为1,横向距离超过1,并且上横向距离上有按钮");
//				FrameUI.changeBtn = FrameUI.imageBtn[i][j];
//				FrameUI.row = i;
//				FrameUI.column = j;	
//				FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
//				return false;
//			}
		}
		else if(location.equals("topLeftColumn2"))
		{
			for(k=i+1; k<FrameUI.row; k++)
			{
				if(FrameUI.imageBtn[k][FrameUI.column].getIcon() != null)
				{
					isEmpty = false;
					break;
				}
			}
//			if(isEmpty)
//			{
//				erase(i,j);
//				return true;
//			}
//			else
//			{
//				JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
//				System.out.println("情况二,横向=1,纵向>1,左纵向!=null");
//				FrameUI.changeBtn = FrameUI.imageBtn[i][j];
//				FrameUI.row = i;
//				FrameUI.column = j;	
//				FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
//				return false;
//			}
		}
		else if(location.equals("topLeftRow2"))
		{
			for(k=FrameUI.column+1; k<j; k++)
			{
				if(FrameUI.imageBtn[i][k].getIcon() != null)
				{
					isEmpty = false;
					break;
				}
			}
//			if(isEmpty)
//			{
//				erase(i,j);
//				return true;
//			}
//			else
//			{
//				JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
//				System.out.println("情况二,横向>1,纵向=1,上横向!=null");
//				FrameUI.changeBtn = FrameUI.imageBtn[i][j];
//				FrameUI.row = i;
//				FrameUI.column = j;	
//				FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
//				return false;
//			}
		}
		else if(location.equals("topRightColumn3"))
		{
			for(k=i+1; k<FrameUI.row; k++)
			{
				if(FrameUI.imageBtn[k][FrameUI.column].getIcon() != null)
				{
					isEmpty = false;
					break;
				}
			}
//			if(isEmpty)
//			{
//				erase(i,j);
//				return true;
//			}
//			else
//			{
//				JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
//				System.out.println("情况三,横向=1,纵向>1,右纵向!=null");
//				FrameUI.changeBtn = FrameUI.imageBtn[i][j];
//				FrameUI.row = i;
//				FrameUI.column = j;	
//				FrameUI.statusLabel.setText("当前点坐标为:("+FrameUI.row+","+FrameUI.column+"), 位移为"+String.valueOf(FrameUI.row*17+FrameUI.column));
//				return false;
//			}
		}
		else if(location.equals("topRightRow3"))
		{
			for(k=j;k<FrameUI.column;k++)
			{
				if(FrameUI.imageBtn[i][k].getIcon() != null)
				{
					isEmpty = false;
					break;
				}

⌨️ 快捷键说明

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