📄 firstcanvas.java
字号:
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.Sprite;
public class FirstCanvas extends Canvas
{
private int width;
private int height;
private int leftKey;
private int rightKey;
private String leftString;
private String rightString;
private byte length;
private int flag;
private Image img_BackGround;
private Image img_DaGou;
private Image destImage;
private Font chooseFont;
private Sprite sp_FirstAnimation;
private String mainRemind;
private String branchRemind;
private String pressAnyKey;
private int yofBranchRemind;
private int charHeight;
public FirstCanvas()
{
width = 0;
height = 0;
leftKey = -6;
rightKey = -7;
length = 10;
flag = 0;
img_BackGround = null;
img_DaGou = null;
destImage = null;
chooseFont = null;
mainRemind = "请按照提示操作,否则您将无法正常使用。若设置错误,请删除后重新下载。";
branchRemind = "请按确定";
pressAnyKey = "请按任意键继续";
yofBranchRemind = 0;
charHeight = 0;
setFullScreenMode(true);
width = getWidth();
height = getHeight();
readImage();
chooseFont = Font.getDefaultFont();
charHeight = chooseFont.getHeight();
leftString = "确定";
rightString = "确定";
}
protected void paint(Graphics g)
{
setFullScreenMode(true);
height = getHeight();
drawSprite(g);
g.setColor(0xffffff);
g.fillRect(0, 0, width, height);
drawText(g);
}
public void showNotify()
{
setFullScreenMode(true);
height = getHeight();
}
private void drawText(Graphics g)
{
g.setColor(0xe7ebff);
g.fillRect(0, 0, width, height);
g.drawImage(img_BackGround, width / 2, height / 2, 3);
g.setColor(0);
g.setFont(chooseFont);
yofBranchRemind = drawAdjustString(mainRemind, 0, 0, g);
if(0 == flag)
{
g.drawString(branchRemind, (width - chooseFont.stringWidth(branchRemind)) / 2, yofBranchRemind, 20);
g.drawString(leftString, 0, height - chooseFont.getHeight(), 20);
} else
if(1 == flag)
{
g.drawString("请再次按确定", (width - chooseFont.stringWidth("请再次按确定")) / 2, yofBranchRemind, 20);
g.drawString(rightString, width, height - chooseFont.getHeight(), 24);
} else
if(2 == flag)
g.drawString(pressAnyKey, (width - chooseFont.stringWidth(pressAnyKey)) / 2, yofBranchRemind, 20);
}
public void keyPressed(int i)
{
if(0 == flag)
leftKey = i;
else
if(1 == flag)
rightKey = i;
else
if(2 == flag)
MMIDlet.instance.saveKeyValues(leftKey, rightKey);
flag++;
repaint();
}
private void drawSprite(Graphics g)
{
}
/*private int drawAdjustString(String s, int i, int j, Graphics g)
{
int k = s.length();
int l = chooseFont.charWidth('\u6C49');
int i1 = 0;
int j1 = (width - 1) / l;
boolean flag1 = false;
label0:
do
{
label1:
{
if(i1 + j1 >= k)
{
j1 = k - i1;
if(j1 == 0)
break label0;
int k1 = chooseFont.stringWidth(s.substring(i1, i1 + j1));
if(k1 <= width - 1)
{
g.drawSubstring(s, i1, j1, i, j, 20);
j += charHeight;
break label0;
}
}
int l1;
do
{
l1 = chooseFont.stringWidth(s.substring(i1, i1 + j1));
if(l1 >= width - 1)
continue;
j1++;
if(i1 + j1 >= k)
{
j1 = k - i1;
l1 = chooseFont.stringWidth(s.substring(i1, i1 + j1));
if(l1 >= width - 1)
{
j1--;
if(isBiaoDianFuHao(s.charAt(i1 + j1)) && !isBiaoDianFuHao(s.charAt((i1 + j1) - 1)))
j1--;
}
break label1;
}
l1 = chooseFont.stringWidth(s.substring(i1, i1 + j1));
} while(l1 < width - 1);
do
{
j1--;
l1 = chooseFont.stringWidth(s.substring(i1, i1 + j1));
} while(l1 >= width - 1);
if(isBiaoDianFuHao(s.charAt(i1 + j1)) && !isBiaoDianFuHao(s.charAt((i1 + j1) - 1)))
j1--;
}
g.drawSubstring(s, i1, j1, i, j, 20);
j += charHeight;
i1 += j1;
} while(true);
return j;
}*/
private int drawAdjustString(String s, int i, int j, Graphics g)
{
int k = s.length();
int l = chooseFont.charWidth('\u6C49');
int i1 = 0;
int j1 = (width - 1) / l;
int k1 = 0;
while(true)
{
if(i1 + j1 >= k)
{
j1 = k - i1;
if(j1 != 0){
k1 = chooseFont.stringWidth(s.substring(i1, i1 + j1));
if(k1 <= width - 1)
{
g.drawSubstring(s, i1, j1, i, j, 20);
j += charHeight;
}
}
break;
}
while( true ){
k1 = chooseFont.stringWidth(s.substring(i1, i1 + j1));
if(k1 < width - 1){ //goto label4 if int1 >= int2
j1++;
if( i1 + j1 >= k){
j1 = k - i1;
k1 = chooseFont.stringWidth(s.substring(i1, i1 + j1));
if( k1 >= width - 1 ){ //goto label6 if int1 < int2
j1--;
if(isBiaoDianFuHao(s.charAt(i1 + j1)) && !isBiaoDianFuHao(s.charAt(i1 + j1-1))){
j1--;
}
}
break;
}
k1 = chooseFont.stringWidth(s.substring(i1, i1 + j1));
}
if( k1 < width - 1 ){
continue;
}
do{
j1--;
k1 = chooseFont.stringWidth(s.substring(i1, i1 + j1));
}while( k1 >= width - 1 );
if(isBiaoDianFuHao(s.charAt(i1 + j1)) && !isBiaoDianFuHao(s.charAt(i1 + j1-1))){
j1--;
}
break;
}
g.drawSubstring(s, i1, j1, i, j, 20);
j += charHeight;
i1 += j1;
continue;
}
return j;
}
private static boolean isBiaoDianFuHao(char c)
{
return -1 != "、,。:;?!,.:;?!".indexOf(c);
}
public void readImage()
{
try
{
InputStream inputstream = getClass().getResourceAsStream("/res/" + Integer.toString(width) + "/i.png");
byte abyte0[] = new byte[inputstream.available()];
inputstream.read(abyte0);
byte byte0 = abyte0[0];
int i=0;
int j = 1;
for(int k = 0; k < byte0; k++)
{
i = (abyte0[j] & 0xff) << 8 | abyte0[j + 1] & 0xff;
j += 2;
if(6 == k)
img_BackGround = Image.createImage(abyte0, j, i);
j += i;
}
}
catch(IOException ioexception) { }
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -