📄 waitcanvas.java
字号:
package WaitDemo;import java.util.*;
import javax.microedition.lcdui.*;
public class WaitCanvas
extends Canvas {
private int mCount, mMaximum;
private int mInterval;
private int mWidth, mHeight, mX, mY, mRadius;
private String mMessage;
public WaitCanvas() {
mCount = 0;
mMaximum = 36;
mInterval = 100;
mWidth = getWidth();
mHeight = getHeight();
//计算角度.
int halfWidth = (mWidth - mRadius) / 2;
int halfHeight = (mHeight - mRadius) / 2;
mRadius = Math.min(halfWidth, halfHeight);
// 计算坐标.
mX = halfWidth - mRadius / 2;
mY = halfHeight - mRadius / 2;
// 创建一个定时器.
TimerTask task = new TimerTask() {
public void run() {
mCount = (mCount + 1) % mMaximum;
repaint();
}
};
Timer timer = new Timer();
timer.schedule(task, 0, mInterval);
}
public void setMessage(String s) {
mMessage = s;
repaint();
}
public void paint(Graphics g) {
int theta = -(mCount * 360 / mMaximum);
//清除屏幕
g.setColor(255, 255, 255);
g.fillRect(0, 0, mWidth, mHeight);
//画图案
g.setColor(0x00ff0000);
g.drawArc(mX, mY, mRadius, mRadius, 0, 360); g.setColor(0x000000ff);
g.fillArc(mX, mY, mRadius, mRadius, theta + 90, 90);
g.fillArc(mX, mY, mRadius, mRadius, theta + 270, 90);
// 如果有信息则显示信息
if (mMessage != null)
g.drawString(mMessage, mWidth / 2, mHeight,
Graphics.BOTTOM | Graphics.HCENTER);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -