📄 message.java
字号:
package com.ismyway.anyview;
import javax.microedition.lcdui.*;
/**
* <p>Title: AnyView</p>
*
* <p>Description: E680(I) Reader</p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: www.ismyway.com</p>
*
* @author ZhangJian
* @version 1.0
*/
public class Message extends AbstractWindow {
private byte[] title = new byte[0];
private byte[][] msg = new byte[0][];
private Image image = null;
public Message() {
super();
}
public void setMessage(byte[] title, byte[][] msg) {
this.title = title;
this.msg = msg;
WINDOW_STATE = OPENING;
buildMessageImage();
}
public void showMessage(String title, String[] msg) {
if (null == title || title.equals("")) {
title = "Title";
}
if (null == msg || msg.length < 1) {
msg = new String[] {"Message"};
}
this.title = AnyView.cf.str2bytes(title);
this.msg = new byte[msg.length][];
for (int i = 0; i < msg.length; i++) {
this.msg[i] = AnyView.cf.str2bytes(msg[i]);
WINDOW_STATE = OPENING;
}
WINDOW_STATE = OPENING;
buildMessageImage();
}
private void buildMessageImage() {
width = 0;
//计算窗口的宽
int max = 0;
max = title.length * AnyView.cf.AsciiWidth;
for (int i = 0; i < msg.length; i++) {
if (max < msg[i].length * AnyView.cf.AsciiWidth) {
max = msg[i].length * AnyView.cf.AsciiWidth;
}
}
width = max + 20;
//计算窗口的高
height = 50 +
(AnyView.cf.FontHeight + AnyView.lineSpace) * msg.length -
AnyView.lineSpace;
image = Image.createImage(width, height);
Graphics g = image.getGraphics();
g.setColor(AnyView.background);
g.fillRect(0, 0, width, height);
g.setColor(AnyView.bordorcolor);
g.drawRect(0, 0, width - 1, height - 1);
g.drawLine(0, 25, width, 25);
if (AnyView.readType == 1) { //横屏
this.LEFT = (AnyView.ScreenWidth - this.height) >> 1;
this.TOP = (AnyView.ScreenHeight + this.width) >> 1;
} else {
this.LEFT = (AnyView.ScreenWidth - this.width) >> 1;
this.TOP = (AnyView.ScreenHeight - this.height) >> 1;
}
this.LEFT = this.LEFT < 0 ? 0 : this.LEFT;
this.TOP = this.TOP < 0 ? 0 : this.TOP;
int w = title.length * AnyView.cf.AsciiWidth;
int x = (width - w) >> 1;
int y = (25 - AnyView.cf.FontHeight) >> 1;
AnyView.cf.setColor(AnyView.titlecolor);
Image temp = AnyView.cf.buildImage(title);
g.drawImage(temp, x, y, ANCHOR);
AnyView.cf.setColor(AnyView.fontcolor);
int top = 35;
for (int i = 0; i < msg.length; i++) {
temp = AnyView.cf.buildImage(msg[i]);
g.drawImage(temp, 10, top, ANCHOR);
top += AnyView.cf.FontHeight + AnyView.lineSpace;
}
temp = null;
System.gc();
}
/**
* bof
*
* @return boolean
* @todo Implement this com.ismyway.anyview.AbstractWindow method
*/
protected boolean bof() {
return false;
}
/**
* destroy
*
* @todo Implement this com.ismyway.anyview.AbstractWindow method
*/
protected void destroy() {
}
/**
* getWindow
*
* @return Image
* @todo Implement this com.ismyway.anyview.AbstractWindow method
*/
protected Image getWindow() {
if (WINDOW_STATE == OPENING) {
return image;
}
return null;
}
public void keyGameA() {
WINDOW_STATE = CLOSED;
}
public void keyGameB() {
WINDOW_STATE = CLOSED;
}
public void keyLeft() {
WINDOW_STATE = CLOSED;
}
public void keyRight() {
WINDOW_STATE = CLOSED;
}
public void keyUp() {
WINDOW_STATE = CLOSED;
}
public void keyDown() {
WINDOW_STATE = CLOSED;
}
public void keyFire() {
WINDOW_STATE = CLOSED;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -