📄 imagescreen.java
字号:
import javax.microedition.lcdui.*;
public class ImageScreen extends Canvas
implements CommandListener {
public ImageScreen () {
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}
private void jbInit () throws Exception {
// 设置该显示对象监听命令事件
setCommandListener(this);
// 添加Exit 命令
addCommand(new Command("Exit", Command.EXIT, 1));
new Thread(new ImageDrawer()).start();
}
/**处理命令事件 */
public void commandAction (Command command, Displayable displayable) {
if (command.getCommandType() == Command.EXIT) {
//停止MIDlet
MultiThreadMIDlet.quitApp();
}
}
protected void paint (Graphics g) {
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
if (m_screenBuff != null) {
g.drawImage(m_screenBuff, currentX, 50, Graphics.TOP | Graphics.LEFT);
}
}
//图像绘制类,采用双缓冲机制实现多线程绘图。
class ImageDrawer
implements java.lang.Runnable {
Image img;
Graphics g;
public ImageDrawer () {
try {
img = Image.createImage("/imgs/forwardarrow.png");
} catch (Exception ex) {}
}
/**
* 线程主方法
*/
public void run () {
//在缓冲区中绘制图像
m_screenBuff = Image.createImage(img.getWidth(), img.getHeight());
Graphics m_bufferGraphics = m_screenBuff.getGraphics();
m_bufferGraphics.setColor(0, 0, 0);
m_bufferGraphics.fillRect(0, 0, getWidth(), getHeight());
m_bufferGraphics.drawImage(img, 0, 0, Graphics.TOP | Graphics.LEFT);
while (currentX < getWidth()) {
currentX++;
repaint();
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
}
private int currentX = 0;
private Image m_screenBuff = null;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -