pointereventtest.java

来自「java教程第八章事例」· Java 代码 · 共 95 行

JAVA
95
字号
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class PointerEventTest extends MIDlet{

	Display display;
	MyCanvas myCanvas;

	public PointerEventTest(){
		display = Display.getDisplay(this);
		myCanvas = new MyCanvas(this);
	}


	public void startApp(){
		display.setCurrent(myCanvas);
	}

	public void pauseApp(){
		
	}

	public void destroyApp(boolean unconditional){
		
	}
	
}

class MyCanvas extends Canvas implements CommandListener{

	Command exitCmd;
	PointerEventTest midlet;
	int startX, startY, endX, endY;
	final static int PRESSED = 1;
	final static int RELEASED = 2;
	int mode;
	boolean initial;
	
	public MyCanvas(PointerEventTest midlet){
		exitCmd = new Command("EXIT", Command.EXIT, 1);
		addCommand(exitCmd);
		setCommandListener(this);
		this.midlet = midlet;
		startX = getWidth()/2;
		startY = getHeight()/2;
		endX = getWidth()/2;
		endY = getHeight()/2; 
		initial = true;
	}

	public void paint(Graphics g){
		
		if(initial){
			g.setColor(0xFFFFFF);
			g.fillRect(0, 0, getWidth(), getHeight());
			initial = false;	
		}
		g.setColor(0);
		if(mode == PRESSED){
			g.drawLine(startX, startY, endX, endY);
			startX = endX;
			startY = endY;
		}
	}
		
	public void pointerPressed(int x, int y){
		mode = PRESSED;
		startX = endX = x;
		startY = endY = y;
		repaint();
	}
	
	public void pointerReleased(int x, int y){
		mode = RELEASED;
		repaint();
	}
	
	public void commandAction(Command c, Displayable d){
		if(c == exitCmd){
			midlet.destroyApp(true);
			midlet.notifyDestroyed();
		}
	}
	
	public void pointerDragged(int x, int y){
		mode = PRESSED;
		endX = x;
		endY = y;
		repaint();
		
	}

}

⌨️ 快捷键说明

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