📄 0021ff0cd461001c1dd0811418b1f47f
字号:
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, "考虑两个拐点的情况");
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(!bottomLeftCornerErase1(i,j))
// topRightCornerErase1(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, "考虑两个拐点的情况");
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(FrameUI.imageBtn[FrameUI.row][j].getIcon() != null)
topLeftCornerErase2(i,j);
//else
//{
//if(!topLeftCornerErase2(i,j))
// bottomRightCornerErase2(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, "考虑两个拐点的情况");
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(FrameUI.imageBtn[i][FrameUI.column].getIcon() != null)
bottomLeftCornerErase3(i,j);
//else
//{
// if(!bottomLeftCornerErase3(i,j))
// topRightCornerErase3(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, "考虑两个拐点的情况");
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(FrameUI.imageBtn[i][FrameUI.column].getIcon() != null)
topLeftCornerErase4(i,j);
//else
//{
//if(!topLeftCornerErase4(i,j))
// bottomRightCornerErase4(i,j);
//}
}
}
}
public void oneWayNext(int i, int j, String location)
{
boolean isEmpty = true;
boolean isEmptyLeft = true;
int k=0;
System.out.println("oneWayNext");
System.out.println("location:"+location);
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);
}
else
{
JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
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 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);
}
else
{
JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
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 if(location.equals("bottomLeftColumn1"))
{
for(k=FrameUI.row+1; k<i; k++)
{
if(FrameUI.imageBtn[k][FrameUI.column].getIcon() != null)
{
isEmptyLeft = false;
break;
}
}
if(isEmptyLeft)
erase(i,j);
else
topRightCornerErase1(i,j);
}
else if(location.equals("bottomLeftRow1"))
{
for(k=FrameUI.column+1; k<j; k++)
{
if(FrameUI.imageBtn[i][k].getIcon() != null)
{
isEmptyLeft = false;
break;
}
}
if(!isEmptyLeft)
topRightCornerErase1(i,j);
else
erase(i,j);
}
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);
}
else
{
JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
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 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);
}
else
{
JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
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 if(location.equals("topLeftColumn2"))
{
for(k=i+1; k<FrameUI.row; k++)
{
if(FrameUI.imageBtn[k][FrameUI.column].getIcon() != null)
{
isEmptyLeft = false;
break;
}
}
if(isEmptyLeft)
erase(i,j);
else
bottomRightCornerErase2(i,j);
}
else if(location.equals("topLeftRow2"))
{
for(k=FrameUI.column+1; k<j; k++)
{
if(FrameUI.imageBtn[i][k].getIcon() != null)
{
isEmptyLeft = false;
break;
}
}
if(isEmptyLeft)
erase(i,j);
else
bottomRightCornerErase2(i,j);
}
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);
}
else
{
JOptionPane.showMessageDialog(FrameUI.mainFrame, "考虑两个拐点的情况");
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 if(location.equals("topRightRow3"))
{
for(k=j;k<FrameUI.column;k++)
{
if(FrameUI.imageBtn[i][k].getIcon() != null)
{
isEmpty = false;
break;
}
}
if(isEmpty)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -