Name That Key: Difference between revisions

From Mobile Application Design
Jump to navigationJump to search
No edit summary
 
No edit summary
Line 30: Line 30:
     protected void startApp() {
     protected void startApp() {
    
    
     System.out.println("I'm starting!!! - " + started);  
     System.out.println("I'm starting!!! - "   started);  
    
    
         if (!started) {
         if (!started) {
Line 42: Line 42:
             started = true;
             started = true;
              
              
             System.out.println("Application Started! Yay! - " + started);
             System.out.println("Application Started! Yay! - "   started);
         }
         }
     }
     }
Line 126: Line 126:
         g.setColor(0);
         g.setColor(0);
         if (lastKeyCode != 0) {
         if (lastKeyCode != 0) {
             String keyText = "keyCode " + lastKeyCode;
             String keyText = "keyCode "   lastKeyCode;
             String keyName = null;
             String keyName = null;


             // See if it is a standard key
             // See if it is a standard key
             for (int i = 0; i < keyCodes.length; i++) {
             for (int i = 0; i < keyCodes.length; i ) {
                 if (lastKeyCode == keyCodes[i]) {
                 if (lastKeyCode == keyCodes[i]) {
                     keyName = keyNames[i];
                     keyName = keyNames[i];
Line 139: Line 139:
             if (keyName == null) {
             if (keyName == null) {
                 // See if it is a game action
                 // See if it is a game action
                 for (int i = 0; i < gameActions.length; i++) {
                 for (int i = 0; i < gameActions.length; i ) {
                     if (lastKeyCode == getKeyCode(gameActions[i])) {
                     if (lastKeyCode == getKeyCode(gameActions[i])) {
                         keyName = gameNames[i];
                         keyName = gameNames[i];
Line 151: Line 151:
                      
                      
             if (keyName != null) {
             if (keyName != null) {
                 g.drawString(keyName, getWidth()/2, getHeight()/2 + g.getFont().getHeight(),  
                 g.drawString(keyName, getWidth()/2, getHeight()/2   g.getFont().getHeight(),  
                             Graphics.BASELINE|Graphics.HCENTER);     
                             Graphics.BASELINE|Graphics.HCENTER);     
             }
             }
         } else if (pointer) {
         } else if (pointer) {
             g.drawString("(" + lastX + ", " + lastY + ")", getWidth()/2, getHeight()/2,  
             g.drawString("("   lastX   ", "   lastY   ")", getWidth()/2, getHeight()/2,  
                             Graphics.BASELINE|Graphics.HCENTER);
                             Graphics.BASELINE|Graphics.HCENTER);
         }
         }

Revision as of 15:26, 3 June 2007

/*
 * NameThatKeyMidlet
 * by Michael Sharon
 * copyleft 2006
 * 
 * Demonstrates event handling with the Canvas low level UI
 */

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.midlet.MIDlet;

public class NameThatKeyMidlet extends MIDlet 
                        implements CommandListener {

    // The MIDlet's Display object
    private Display display;
        
    // Flag indicating first call of startApp
    protected boolean started;
    
    // Our Exit command
    private Command exitCommand;
    
    protected void startApp() {
    	
    	System.out.println("I'm starting!!! - "   started); 
    	
        if (!started) {
            display = Display.getDisplay(this);
            Canvas canvas = new KeyFinderCanvas();            
            exitCommand = new Command("Exit", Command.EXIT, 0);
            canvas.addCommand(exitCommand);
            canvas.setCommandListener(this);
            display.setCurrent(canvas);
            
            started = true;
            
            System.out.println("Application Started! Yay! - "   started);
        }
    }

    protected void pauseApp() {
    }

    protected void destroyApp(boolean unconditional) {
    }

    public void commandAction(Command c, Displayable d) {
        if (c == exitCommand) {
            // Exit. No need to call destroyApp
            // because it is empty.
            notifyDestroyed();
        }
    }     
}

class KeyFinderCanvas extends Canvas {
    
    static int[] keyCodes = {KEY_NUM0, KEY_NUM1, KEY_NUM2, KEY_NUM3, KEY_NUM4,
                             KEY_NUM5, KEY_NUM6, KEY_NUM7, KEY_NUM8, KEY_NUM9,
                             KEY_POUND, KEY_STAR};
    static String[] keyNames = {"KEY_NUM0", "KEY_NUM1", "KEY_NUM2", "KEY_NUM3", "KEY_NUM4",
                             "KEY_NUM5", "KEY_NUM6", "KEY_NUM7", "KEY_NUM8", "KEY_NUM9",
                             "KEY_POUND", "KEY_STAR"};
                             
    static int[] gameActions = {
                            UP, DOWN, LEFT, RIGHT, FIRE,
                            GAME_A, GAME_B, GAME_C, GAME_D};
    static String[] gameNames = {
                            "UP", "DOWN", "LEFT", "RIGHT", "FIRE",
                            "GAME_A", "GAME_B", "GAME_C", "GAME_D" };

    
    int lastKeyCode = 0;
    
    int lastX;
    
    int lastY;
    
    boolean pointer;

    protected void keyPressed(int keyCode) {
        lastKeyCode = keyCode;
        repaint();
    }
        
    protected void keyRepeated(int keyCode) {
        lastKeyCode = keyCode;
        repaint();
    }
        
    protected void keyReleased(int keyCode) {
        lastKeyCode = 0;
        repaint();
    }    

    protected void pointerPressed(int x, int y) {
        lastX = x;
        lastY = y;
        pointer = true;
        repaint();
    }
        
    protected void pointerDragged(int x, int y) {
        lastX = x;
        lastY = y;
        pointer = true;
        repaint();
    }
    
    protected void pointerReleased(int x, int y) {
        pointer = false;
        repaint();
    }
    
    protected void paint(Graphics g) {
        g.setColor(0xffffff);
        g.fillRect(0, 0, getWidth(), getHeight());
        
        g.setColor(0);
        if (lastKeyCode != 0) {
            String keyText = "keyCode "   lastKeyCode;
            String keyName = null;

            // See if it is a standard key
            for (int i = 0; i < keyCodes.length; i  ) {
                if (lastKeyCode == keyCodes[i]) {
                    keyName = keyNames[i];
                    break;
                }
            }   
            
            if (keyName == null) {
                // See if it is a game action
                for (int i = 0; i < gameActions.length; i  ) {
                    if (lastKeyCode == getKeyCode(gameActions[i])) {
                        keyName = gameNames[i];
                        break;
                    }
                }
            }
            
            g.drawString(keyText, getWidth()/2, getHeight()/2, 
                            Graphics.BASELINE|Graphics.HCENTER);
                    
            if (keyName != null) {
                g.drawString(keyName, getWidth()/2, getHeight()/2   g.getFont().getHeight(), 
                            Graphics.BASELINE|Graphics.HCENTER);    
            }
        } else if (pointer) {
            g.drawString("("   lastX   ", "   lastY   ")", getWidth()/2, getHeight()/2, 
                            Graphics.BASELINE|Graphics.HCENTER);
        }
    }
}