📄 poolmouselistener.java
字号:
package dujid.araneid;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Iterator;
import java.util.Stack;
// 鼠标 按下/释放 事件
public class PoolMouseListener extends MouseAdapter {
private Pools pool;
private Araneid main;
public PoolMouseListener(Araneid main) {
this.main=main;
}
public void mouseExited(MouseEvent evt) {
Pools pool=(Pools)evt.getSource();
pool.setMouseEnter(false);
pool.repaint();
this.pool=null;
}
public void mouseEntered(MouseEvent evt) {
Pools pool=(Pools)evt.getSource();
if (this.pool!=pool) {
this.pool=pool;
pool.setMouseEnter(true);
pool.repaint();
}
}
public void mousePressed(MouseEvent evt) {
Pools pool=(Pools)evt.getSource();
Point point = (Point)evt.getPoint();
AutoRobot robot = new AutoRobot(this.main);
int index;
if ((index = robot.getCardIndexOnMouse(point.y,pool))>-1) {
main.poolmousemotion.setCardindexSelect(index);
}
}
public void mouseReleased(MouseEvent evt) {
main.mousepanel.setVisible(false);
if (this.pool!=null && this.pool!=(Pools)evt.getSource()) {
Stack cards = (Stack)main.mousepanel.getCards();
if (cards.size()>0) {
Pools poolSrc = (Pools)evt.getSource();
boolean pushed = false;
if (this.pool.getCards().size()>0) {
Card cardnext = (Card)cards.firstElement();
Card cardprevious = (Card)this.pool.getCards().lastElement();
AutoRobot robot = new AutoRobot();
if (robot.isAddAble(cardprevious,cardnext)) {
pushcards((Iterator)cards.iterator(), poolSrc);
pushed = true;
}
} else {
pushcards((Iterator)cards.iterator(),poolSrc);
pushed = true;
}
// move out a list (1-13) after the list has completed
AutoRobot robot = new AutoRobot(this.main);
if (robot.isMoveListAble(this.pool.getCards())) {
robot.moveCompletedList(this.pool.getCards());
robot.autoTurnLast(this.pool);
}
// refresh mouse note
if (pushed==true) {
Point point = (Point)evt.getPoint();
int index = robot.getCardIndexOnMouse(point.y,this.pool);
this.pool.setCardIndexOnMouse(index);
this.pool.setMouseEnter(true);
} else {
// remove all temp card
main.mousepanel.removeAllCard();
}
// auto turn card
robot.autoTurnLast(poolSrc);
this.pool.repaint();
}
}
}
private void pushcards(Iterator cardlist, Pools poolSrc) {
while(cardlist.hasNext()) {
Card card = (Card)cardlist.next();
poolSrc.removeCard();
poolSrc.repaint();
this.pool.putCard(card);
}
// decrease score
main.player.addScore(-1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -