📄 restorablebuttoneventlistener.java
字号:
/*
* @(#)RestorableButtonListener.java 1.0 03/08/22
* Copyright 2003 Entao Zhang, All rights reserved.
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
* 拼图一般方式的事件处理类(仅鼠标事件)
*/
public class RestorableButtonEventListener extends
ComponentsEventListener implements ActionListener{
private int loc,locX,locY;
private int swapX,swapY;
private int temp,x,swap;
private int grids[];
public RestorableButtonEventListener(ImageRevertUnitPane ir){
super(ir);
}
public void addListener(Component c){
((JButton)c).addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if (ir.isConfused()){
x=ir.x;
grids=ir.grids;
swap=ir.swap;
loc=Integer.parseInt(((Component)e.getSource()).getName());
locX=loc%x; locY=loc/x;
swapX=swap%x; swapY=swap/x;
if (swapX==locX | swapY==locY){
ir.cm.swapStateChange(true);
temp=grids[swap];
int step=(swapX==locX)?(swapY<locY?x:-x):(swapX<locX?1:-1);
for(int i=swap ;i!=loc ;i+=step ){
grids[i]=grids[i+step];
ir.cm.componentStateChange(i);
}
grids[loc]=temp;
ir.swap=loc;
ir.cm.swapStateChange(false);
ir.isDone();
}else{
//附加功能.
}
}
else{
ir.questionToStart();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -