解决J2ME开发中的连续按键问题[2]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

    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);

本文关键:解决J2ME开发中的连续按键问题
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top