J2ME怎么在屏幕上注册多个可以上下选择的按钮?

sasgsc 2008-09-24 09:26:22
不是使用command,使用command注册的按钮会在menu里面,我是想在屏幕上注册几个button,然后可以用十字键选择,然后点击不同的按钮触发不同的事件。谢谢大家了。
...全文
96 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Class_Raito 2008-09-25
  • 打赏
  • 举报
回复
canvas
xiyuanna 2008-09-25
  • 打赏
  • 举报
回复
我是想在屏幕上注册几个button,然后可以用十字键选择,然后点击不同的按钮触发不同的事件

其实在屏幕上的就是用低级界面画的,感觉是按钮,其实是图片,两张按起来感觉像按钮的图片,或者可以当到达焦点的时候加一个框最为提示是当前选项

当选择到这个的时候就进入到这个的处理状态
bianmazi 2008-09-25
  • 打赏
  • 举报
回复
和command的按钮概念不同吧..像楼上说的.低级界面UI自己去画吧.然后keyPressed()去实现
LOVE小葡萄 2008-09-25
  • 打赏
  • 举报
回复
低级界面
lgtwboy 2008-09-25
  • 打赏
  • 举报
回复
那和按钮没啥关系了
监听按键就行
PaleSting 2008-09-25
  • 打赏
  • 举报
回复
//MenuCanvas类

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;

public class MenuCanvas extends Canvas implements Runnable {

private String[] menuItemList = new String[] { "ActionOne", "ActionTwo",
"ActionThree" };

private final static int ITEM_HEIGHT = 50;

private final static int ITEM_INTEVAL = 20;

private String promptMessage = "";

private int currentIndex = 0;

public MenuCanvas() {
}

protected void keyPressed(int keyCode) {
switch (getGameAction(keyCode)) {
case UP:
currentIndex -= 1;
break;
case DOWN:
currentIndex += 1;
break;
case FIRE:
fireAction();
break;
}
if (currentIndex < 0) {
currentIndex = menuItemList.length - 1;
}
if (currentIndex >= menuItemList.length) {
currentIndex = 0;
}
}

private void fireAction() {
System.out.println("you fire index is: " + currentIndex);
}

protected void paint(Graphics g) {
for (int i = 0; i < menuItemList.length; ++i) {
if (i == currentIndex) {
g.setColor(0xff00ff);
} else {
g.setColor(0x0000ff);
}
g.fillRect(50, i * (ITEM_HEIGHT + ITEM_INTEVAL), getWidth() / 2,
ITEM_HEIGHT);
g.setColor(0x000000);
g.drawString(menuItemList[i], 70, i * (ITEM_HEIGHT + ITEM_INTEVAL)
+ 10, Graphics.TOP | Graphics.LEFT);
}
}

public void run() {
while (true) {
this.repaint();
serviceRepaints();
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

public void start() {
new Thread(this).start();
}

}


主Midlet调用方法:

Display display = Display.getDisplay(this);
MenuCanvas canvas = new MenuCanvas();
canvas.start();
display.setCurrent(canvas);
PaleSting 2008-09-25
  • 打赏
  • 举报
回复
这个很难吗??等我来写个实例代码给你。
sasgsc 2008-09-24
  • 打赏
  • 举报
回复
楼上的,呃...那是注册在了menu中了.....还是谢谢你....
l236724960 2008-09-24
  • 打赏
  • 举报
回复
添加几个command c1、c2、c3用add()方法添加c1、c2、c3,最后用setcommandListener(this)方法就可以注册按钮
sasgsc 2008-09-24
  • 打赏
  • 举报
回复
顺便求j2me的API下载.....英文的就可以........

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧