📄 selectcanvas.java
字号:
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
/**
* @author XiaYaoxing Email: xia198507@126.com
*
*/
public class SelectCanvas extends Canvas{
public WorkMIDlet midlet;
public int color;
public int optionInd;
public int optionPosX; //选项位置
public int optionPosY;
public int width;
public int height;
/**当前选择项*/
public int currentSelected;
public SelectCanvas(WorkMIDlet midlet){
setFullScreenMode(true); //设置全屏显示
width = getWidth();
height = getHeight();
this.midlet = midlet;
color = 0xff0000;
}
protected void paint(Graphics g) {
g.setColor(0xffffff);
g.fillRect(0,0,width,height);
drawOption(g);
}
/**
* 绘制选项
*/
private void drawOption(Graphics g) {
Font font = Pub.FONT_LARGE;
g.setFont(font);
int optionWidth = font.stringWidth("图片移动");
int fontHeight = font.getHeight();
int optionX = width - optionWidth >> 1; //选项的X坐标
String[] options = {"图片移动","声音播放"};
int length = options.length;
g.setColor(0);
for(int i = 0;i < length;i ++){
if(i == currentSelected){ //如果当前选项被选中,则显示红色
g.setColor(0xff0000);
}
g.drawString(options[i],optionX,100 + (fontHeight + 5) * i,0);
g.setColor(0);
}
g.drawString("退出",width - font.stringWidth("退出"),height - fontHeight,0);
}
/**按键处理*/
public void keyPressed(int keyCode){
switch(keyCode){
case Pub.KEY_UP:
case Pub.KEY_DOWN:
case KEY_NUM2:
case KEY_NUM8:
currentSelected = currentSelected == 0 ? 1 : 0;
repaint();
serviceRepaints();
break;
case Pub.SOFT_KEY_RIGHT:
midlet.quitGame(); //退出游戏
break;
case Pub.KEY_FIRE:
WorkCanvas workCanvas = new WorkCanvas(midlet);
workCanvas.setFrame(currentSelected);
midlet.setCanvas(workCanvas);
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -