clippingtest.java

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

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

public class ClippingTest extends MIDlet{

	Display display;
	MyCanvas myCanvas;

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


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

	public void pauseApp(){
	}

	public void destroyApp(boolean unconditional){
	}

	class MyCanvas extends Canvas implements CommandListener{

		Command moveRightCmd, moveDownCmd;
		Image image;
		int clippingX, clippingY;
		int clippingWidth, clippingHeight;
		boolean reverseX, reverseY;

		public MyCanvas(){
			clippingX = 0;
			clippingY = 0;
			clippingWidth = 40;
			clippingHeight = 40;
			reverseX = false;
			reverseY = false;
			try{
				image = Image.createImage("/_logo_8.png");
			}catch(Exception ex){}
			moveRightCmd = new Command("向右", Command.SCREEN, 1);
			moveDownCmd = new Command("向下", Command.SCREEN, 1);
			addCommand(moveRightCmd);
			addCommand(moveDownCmd);
			setCommandListener(this);
		}

		public void paint(Graphics g){
			g.setColor(0xFFFFFF);
			g.fillRect(0, 0, getWidth(), getHeight());
			g.translate(clippingX, clippingY);
			g.setClip(0, 0, clippingWidth, clippingHeight);
			g.translate(-clippingX, -clippingY);
			g.drawImage(image, 0, 0, Graphics.LEFT|Graphics.TOP);
		}

		public void commandAction(Command c, Displayable d){

			if(c == moveRightCmd){
				if(reverseX == false){
					clippingX += 10;
				}
				else{
					clippingX -= 10;
				}
				if(clippingX >= getWidth()){
					clippingX = getWidth();
					reverseX = true;
				}
				if(clippingX <= 0){
					clippingX = 0;
					reverseX = false;
				}
			}
			else if(c == moveDownCmd){
				if(reverseY == false){
					clippingY += 10;
				}
				else{
					clippingY -= 10;
				}
				if(clippingY >= getHeight()){
					clippingY = getHeight();
					reverseY = true;
				}
				if(clippingY <= 0){
					clippingY = 0;
					reverseY = false;
				}
			}
			repaint();
		}
	}
}

⌨️ 快捷键说明

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