Canvas及其支持的按键事件测试小例
2007-12-23 12:27:52 来源:WEB开发网核心提示:点了模拟器的Select键,然后上下左右调整就可以选开始画一个立体的按钮.再点一下Select键,上下左右键就可以控制按钮的移动了.import javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Command;import javax.mi
点了模拟器的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
}
(出处:http://www.cncms.com)
- ››Canvas性能技巧:必须知道的Canvas性能技巧
- ››支持 Symbian 平台的开发者只有四分之一
- ››支持电骡视频点播 迅雷泛播放体验
- ››支持Win 7 Vista 不开迅雷接管高速下载
- ››支持换肤功能的窗口实例
- ››支持iPhone的免费VPN:VPN98
- ››支持PDF阅读!美图看看新版试用
- ››支持Windows CE和Android 2.1双系统的Viliv Prime...
- ››支持Flash Windows Mobile 手机全功能浏览器
- ››支持 Wi-Fi MOTO 第9款 Android 手机ME508曝光
- ››支持磁力链接 迅雷发力化解BT下载难题
- ››支持 Multi-tenancy 的 IBM DB2 Content Manager ...
更多精彩
赞助商链接