Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > 解决J2ME开发中的连续按键问题(2)
【标  题】:解决J2ME开发中的连续按键问题(2)
【关键字】:J2ME,ME,J2ME
【来  源】:网络

解决J2ME开发中的连续按键问题(2)

Your Ad Here

解决J2ME开发中的连续按键问题(2)
下面是应用程序截图和源代码。


package com.j2medev;

import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class KeyActionMIDlet extends MIDlet
{

private Display display;

private MainCanvas mainCanvas;

protected void startApp() throws MIDletStateChangeException
{

display = Display.getDisplay(this);
mainCanvas = new MainCanvas();
new Thread(mainCanvas).start();
display.setCurrent(mainCanvas);

}

protected void pauseApp()
{
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException
{
}
}

package com.j2medev;

import javax.microedition.lcdui.*;

public class MainCanvas extends Canvas implements Runnable
{
private String buttonPressed;
private boolean leftPressed;
private boolean rightPressed;
private int px = getWidth() / 2;
public final int py = getHeight() / 2;

public MainCanvas()
{
buttonPressed = " ";
}

private void left()
{
if (px >= 0)
{
px--;
}
buttonPressed = "LEFT";
repaint();
}

private void right()
{
if (px <= getWidth())
{
px++;
}
buttonPressed = "RIGHT";
repaint();
}

public void run()
{
while (true)
{
if (leftPressed)
{
left();
}
if (rightPressed)
{
right();
}

try
{
Thread.sleep(50);
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
public void paint(Graphics g)
{
g.setColor(0xFFFFFF);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0x000000);

g.drawString(buttonPressed, 20, 20, Graphics.LEFT | Graphics.TOP);
g.drawString("J2ME", px, py, Graphics.HCENTER | Graphics.TOP);
}

public void keyReleased(int keyCode)
{
int action = getGameAction(keyCode);
switch (action)
{
case LEFT:
leftPressed = false;
buttonPressed = "";
break;
case RIGHT:
rightPressed = false;
buttonPressed = "";
break;
default:
break;
}
repaint();
}
public void keyPressed(int keyCode)
{
int action = getGameAction(keyCode);

switch (action)
{
case LEFT:
left();
leftPressed = true;
break;

case RIGHT:
right();
rightPressed = true;
break;

default:
break;
}
repaint();

}
public void keyRepeated(int keyCode)
{
int action = getGameAction(keyCode);
switch (action)
{
case LEFT:
left();
break;
case RIGHT:
right();
break;

default:
break;
}
repaint();
}
}
smart at java(1):【上一篇】
解决J2ME开发中的连续按键问题(1):【下一篇】
【相关文章】
  • Eclipse开发J2ME程序之安装配置
  • Eclipse开发J2ME程序之Hello World(1)
  • Eclipse开发J2ME程序之Hello World(2)
  • Eclipse开发J2ME程序之Hello World(3)
  • j2me环境下开发HELLOWORLD程序
  • J2ME开发的一些体会
  • J2ME游戏俄罗斯方块的设计与改良
  • 使用Factory Method模式
  • Game Faster V1.0
  • Mixer Volume Ctrler V1.0
  • 【随机文章】
  • Using COM with PHP
  • Python指南-1-开胃菜
  • 24口非网管工作组接入交换机iSpirit1524E
  • 利用stringstream实现数据类型的转换。
  • Zend Optimizer安装
  • 如何建立手机网站
  • 一个搜索引擎,一个站点,一张大网
  • 上海电信真如机房服务器托管021-58627218转14分机王永亮(先生)
  • ERP的目的
  • 获取音乐数据流制作随数据流变化的MC
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.