点了模拟器的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.knowsky.com)