📄 playercanvas.java
字号:
package com.catking.GUI.leftToolBar;
import java.util.Timer;
import java.util.TimerTask;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.*;
import com.catking.Manager.*;
import com.catking.Utility.Utilities;
public class PlayerCanvas extends Canvas{
private Timer timer;
private TimerTask task;
private Player player;
private int totalTime = 0;
private volatile boolean isTerminated = true;
public PlayerCanvas(Composite parent, final Player player){
super(parent, SWT.NO);
this.player = player;
this.setSize(64, 150);
//准备缓冲图片
PaletteData palette = new PaletteData(0xFF , 0xFF00 , 0xFF0000);
ImageData imageData = new ImageData(64, 150, 24, palette); //能够保存24位位图
ResourceManager.playerImg[player.kind] = new Image(
Display.getCurrent(), imageData);
GC gc = new GC(ResourceManager.playerImg[player.kind]);
gc.setBackground(this.getBackground());
gc.fillRectangle(0, 0, 64, 150);
Image img = new Image(Display.getCurrent(), player.headImageFile);
gc.drawImage(img, 5, 2);
gc.setFont(ResourceManager.timeFont);
gc.drawString(player.name, 15, 68);
gc.drawString("0:00:00", 1, 100);
img.dispose();
gc.dispose();
this.addPaintListener(new PaintListener(){
@Override
public void paintControl(PaintEvent e) {
e.gc.drawImage(
ResourceManager.playerImg[player.kind], 0, 0);
}
});
}
//开始计时
public void startPuttingChess(){
/*System.out.println("Restart");
task = new MyTask();
timer = new Timer(true);
timer.scheduleAtFixedRate(task, 1000, 1000);*/
Display.getCurrent().asyncExec(new MyTask());
}
//停止计时
public void pausePuttingChess(){
timer.cancel();
System.out.println("stop");
}
public void clear(){
this.totalTime = 0;
}
public String getTime(){
int h, m, s;
int temp;
String str;
s = totalTime % 60;
temp = totalTime / 60;
m = temp % 60;
h = temp / 60;
if(s < 10)
str = (":" + "0" + s);
else
str = ":" + s;
if( m < 10)
str = (":" + "0" + m ) + str;
else
str = ":" + m + str;
return h + str;
}
private class MyTask extends Thread{
@Override
public void run() {
System.out.println(++totalTime + " "+ getTime());
GC gc = new GC (ResourceManager.playerImg[player.kind]);
gc.drawString(getTime(), 2, 100);
gc.dispose();
//处理超时
if(++totalTime > 7200){
}
PlayerCanvas.this.redraw();
Utilities.delay(1000);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -