|
Canvas及其支持的按键事件测试小例
发表日期:2007-12-23
|
点了模拟器的Select键,然后上下左右调整就可以选开始画一个立体的按钮.再点一下Select键,上下左右键就可以控制按钮的移动了.
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.lcdui.Ticker; /* * Created on 2005-1-29 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */
/** * @author jeremy chow * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class FullCanvasTest extends Canvas implements CommandListener { protected boolean pressed, drew; int x = 50 ; int y = 50; int w = 1; int h = 1; int length = 5; /** * */ public FullCanvasTest() { // super(); // TODO Auto-generated constrUCtor stub // setTitle(); pressed = false; drew = false; setTitle("全屏幕测试"); setTicker(new Ticker("跑马灯")); addCommand(new Command("全屏幕",Command.SCREEN,1)); addCommand(new Command("正常",Command.SCREEN,1)); setCommandListener(this); }
/* (non-Javadoc) * @see javax.microedition.lcdui.Displayable#paint(javax.microedition.lcdui.Graphics) */ protected void paint(Graphics g) { // TODO Auto-generated method stub g.setColor(200,200,200); g.fillRect(0,0,getWidth(),getHeight()); setFullScreenMode(true); paintButton(g, x, y , w, h,pressed); paintCross(g, x + w, y + h, length);
} public void paintButton(Graphics g, int x, int y, int w, int h, boolean p) { if(!p) { g.setColor(255,255,255); g.fillRect(x-1, y-1, w, h); g.setColor(125, 125, 125); g.fillRect(x, y, w, h); } else { g.setColor(255,255,255); g.fillRect(x, y, w, h); g.setColor(125,125,125); g.fillRect(x-1, y-1, w, h);
} } public void paintCross(Graphics g, int x, int y, int length) { g.setColor(255,0,0); g.drawLine(x-length, y, x+length, y); g.drawLine(x, y-length, x , y+length); } /* (non-Javadoc) * @see javax.microedition.lcdui.CommandListener#commandAction(javax.microedition.lcdui.Command, javax.microedition.lcdui.Displayable) */ public void commandAction(Command c, Displayable s) { // TODO Auto-generated method stub String cmd = c.getLabel(); if(cmd.equals("全屏幕")) { setFullScreenMode(true); } else if(cmd.equals("正常")) { setFullScreenMode(false); } } protected void sizeChanged(int w, int h) { System.out.println("改变后的宽度:" + w); System.out.println("改变后的高度:" + h); } protected void hideNotify() { System.out.println("屏幕被系统遮蔽"); } protected void showNotify() { System.out.println("屏幕显示在屏幕上"); } protected void keyPressed(int keycode) { System.out.println("被下按的键值:" + getGameAction(keycode)); switch(getGameAction(keycode)) { case Canvas.UP : if(!drew) y = y - 2; else h = h - 2; break; case Canvas.DOWN : if(!drew) y = y + 2; else h = h + 2; break; case Canvas.LEFT : if(!drew)x = x - 2; else w = w - 2; break; case Canvas.RIGHT : if(!drew) x = x + 2; else w = w + 2; break; case Canvas.FIRE : pressed = true; break; default : break; } // pressed = true; repaint(); } protected void keyReleased(int keycode) { System.out.println("被释放的键值:" + getGameAction(keycode)); switch(getGameAction(keycode)) { case Canvas.FIRE : pressed = false; drew = !drew; break; default : break; } repaint(); } }
import javax.microedition.lcdui.Display; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; /* * Created on 2005-1-29 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */
/** * @author jeremy chow * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class CanvasTestMIDlet extends MIDlet { protected Display display; /** * */ public CanvasTestMIDlet() { // super(); // TODO Auto-generated constructor stub display = Display.getDisplay(this); }
/* (non-Javadoc) * @see javax.microedition.midlet.MIDlet#startApp() */ protected void startApp() throws MIDletStateChangeException { // TODO Auto-generated method stub FullCanvasTest fc = new FullCanvasTest(); display.setCurrent(fc); }
/* (non-Javadoc) * @see javax.microedition.midlet.MIDlet#pauseApp() */ protected void pauseApp() { // TODO Auto-generated method stub
}
/* (non-Javadoc) * @see javax.microedition.midlet.MIDlet#destroyApp(boolean) */ protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // TODO Auto-generated method stub
} 进入讨论组讨论。
|
|
上一篇:BlueTooth探索系列(三)---发现服务框架(续)
人气:696
下一篇:BlueTooth探索系列(五)—J2ME蓝牙实战入门
人气:949 |
浏览全部J2EE/J2ME的内容
Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐
|
|