📄 chessman.java
字号:
//package lisen.game;
import java.awt.*;
public class Chessman extends Canvas implements Runnable{
protected int m_nSize,m_nChangeSize,m_nStartPoint;
//分别为圆的大小,改变的幅度,开始画的位置
protected Color m_crForeColor;
protected boolean m_bIsSelect,m_bIsFirst;
private Thread m_threadFlicker;
//构造函数
public Chessman(){
super();
resize(50,50);
m_nSize=45;
m_nChangeSize=-10;
m_nStartPoint=5;
m_crForeColor=getBackground();
m_bIsSelect=m_bIsFirst=false;
m_threadFlicker=null;
}
public void paint(Graphics g){
g.drawRect(0,0,49,49);
if(m_bIsSelect){
g.setColor(m_crForeColor);
g.fillOval(m_nStartPoint,m_nStartPoint,m_nSize,m_nSize);
}
}
public void setColor(Color cr){
m_crForeColor=cr;
repaint();
}
public void select(Color cr){
m_bIsSelect=true;
setColor(cr);
}
public void cancelSelect(){
m_bIsSelect=m_bIsFirst=false;
m_crForeColor=getBackground();
if(m_threadFlicker!=null&&m_threadFlicker.isAlive())m_threadFlicker.yield();
m_threadFlicker=null;
m_nSize=45;
m_nStartPoint=5;
m_nChangeSize=-10;
repaint();
}
public void setFirst(){
m_bIsFirst=true;
}
public void flicker(){
m_threadFlicker=new Thread(this);
m_threadFlicker.start();
}
public void run(){
while(m_bIsFirst){
m_nSize+=m_nChangeSize;
m_nStartPoint-=m_nChangeSize;
m_nChangeSize=-m_nChangeSize;
repaint();
try{m_threadFlicker.sleep(250);}
catch(InterruptedException ic){}
}
}
public void cancelFlicker(){
if(m_threadFlicker!=null&&m_threadFlicker.isAlive())m_threadFlicker.yield();
m_bIsFirst=false;
m_nSize=45;
m_nStartPoint=5;
m_nChangeSize=-10;
m_threadFlicker=null;
repaint();
}
public boolean isSelect(){
return m_bIsSelect;
}
public boolean isFirst(){
return m_bIsFirst;
}
public Color getColor(){
return m_crForeColor;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -