⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 movecanvas.java.svn-base

📁 example2 众多JAVA实例源码...学习java基础的好帮手
💻 SVN-BASE
字号:
package opusmicro.demos.game;

import java.util.Vector;

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

public class MoveCanvas extends Canvas implements CommandListener{
	private int x;
	private int y;
	int w, h;
//	private byte[] keyCode;
//	private int index;
	Vector keyCode = new Vector();
	private Command exit;
	private MoveMIDlet md;
	private Rectangle obj;
	private LogCanvas lc;
	public MoveCanvas(MoveMIDlet md) {
		this.md =md;
		init();
	}
	
	private void init(){
		exit = new Command("Exit",Command.EXIT,0);
		addCommand(exit);
		setCommandListener(this);
//		keyCode = new byte[2];
		w = getWidth();
		h = getHeight();
		obj = new Rectangle(this);
		x = w/2-obj.recW/2;
		y = h/2-obj.recH/2;
		obj.setLocation(x, y);
		lc = new LogCanvas(this,md);
//		lc.log(LogCanvas.INFO, "Rectangle x="+obj.x+" y="+obj.y);
	}
	
	public void keyPressed(int key) {
		start(key);
		if ( !handleFunKey()) {
			obj.handleEvent(Rectangle.EVENT_KEY_PRESSED, key);
		}
	}

	public void keyReleased(int key) {
		if ( !handleFunKey()) {
			obj.handleEvent(Rectangle.EVENT_KEY_RELEASED, key);
			lc.log(LogCanvas.DEBUG, "Rectangle x="+obj.x+" y="+obj.y);
		}
	}
	
	public void start(int keyCode){
//		this.keyCode[index] = (byte) keyCode;
//		index = (byte) ((index + 1) % this.keyCode.length);
		if(this.keyCode.size()>1){
			this.keyCode.removeElement(this.keyCode.firstElement());
		}
		this.keyCode.addElement(new Integer(keyCode));
//		System.out.println("keCode.size "+this.keyCode.size());
	}
	
	protected void paint(Graphics g) {
		g.setColor(-1);
		g.fillRect(0, 0, w, h);
		obj.paint(g);
	}
	
	private boolean handleFunKey(){
		byte[] temp = new byte[2];
		
		for(int i=0;i<keyCode.size();i++){
			String s = String.valueOf(this.keyCode.elementAt(i));
			temp[i] = (byte) Integer.parseInt(s);
		}
		
//		byte[] temp = keyCode;
//		System.out.println("temp[0]= "+temp[0]+"   temp[1]= " +temp[1]);
//		if (( temp[1] == Canvas.KEY_STAR && temp[0]== Canvas.KEY_NUM9) || ( temp[0] == Canvas.KEY_STAR && temp[1]== Canvas.KEY_NUM9)) {
			if ( (temp[1]== Canvas.KEY_NUM9) && (temp[0] == Canvas.KEY_STAR)) {
//				keyCode[0]=0;
//				keyCode[1]=0;
				this.keyCode.removeAllElements();
				obj.setLocation(x, y);
				repaint();
				lc.log(LogCanvas.INFO, "re-initialize rectangle to XXX YYY");
				return true;
//			}
		}
		for ( int i = 0 ; i < temp.length ; i++) {
			if(temp[i]==Canvas.KEY_POUND){
//				keyCode[i] = 0;
				this.keyCode.removeElementAt(i);
				md.display.setCurrent(lc);
				lc.log(LogCanvas.INFO, "switch screen to logCanvas xxxxxxxx");
				repaint();
				return true;
			}
		}
		return false;
	}
	
	public void commandAction(Command c, Displayable d) {
		if(c==exit){
			obj.isKeepGoing = false;
			try {
				md.notifyDestroyed();
				md.destroyApp(true);
			}
			catch (MIDletStateChangeException e) {
			}
		}
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -