📄 canvasdrawtest.java
字号:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.io.*;
import javax.microedition.midlet.MIDletStateChangeException;
/*
* Created on 2005-4-15
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
/**
* @author yuantai1
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class CanvasDrawTest extends MIDlet
implements CommandListener
{
private Command exitCommand;
private Command aCommand0,aCommand1,aCommand2,aCommand3,aCommand4,
aCommand5;
private DemoCanvas myCanvas;
public CanvasDrawTest()
{ exitCommand=new Command("EXIT",Command.EXIT,2);
aCommand0=new Command("坐标移动演示",Command.SCREEN,3);
aCommand1=new Command("对齐演示",Command.SCREEN,3);
aCommand2=new Command("弧线与填充",Command.SCREEN,3);
aCommand3=new Command("扇形图",Command.SCREEN,3);
aCommand4=new Command("线条演示",Command.SCREEN,3);
aCommand5=new Command("图片演示",Command.SCREEN,3);
myCanvas=new DemoCanvas();
myCanvas.addCommand(exitCommand);
myCanvas.addCommand(aCommand0);
myCanvas.addCommand(aCommand1);
myCanvas.addCommand(aCommand2);
myCanvas.addCommand(aCommand3);
myCanvas.addCommand(aCommand4);
myCanvas.addCommand(aCommand5);
myCanvas.setCommandListener(this);
}
/* (non-Javadoc)
* @see javax.microedition.midlet.MIDlet#startApp()
*/
protected void startApp() throws MIDletStateChangeException {
Display.getDisplay(this).setCurrent(myCanvas);
}
/* (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 p1) {
// TODO Auto-generated method stub
}
public void commandAction(Command c,Displayable d)
{ if (c==exitCommand){
destroyApp(false);
notifyDestroyed();
}
else if (c==aCommand0)
{myCanvas.demoType=0;
myCanvas.textShow="坐标移动演示";
myCanvas.repaint();
}
else if (c==aCommand1)
{myCanvas.demoType=1;
myCanvas.textShow="对齐演示";
myCanvas.repaint();
}
else if (c==aCommand2)
{myCanvas.demoType=2;
myCanvas.textShow="弧线与填充";
myCanvas.repaint();
}
else if (c==aCommand3)
{myCanvas.demoType=3;
myCanvas.textShow="扇形图";
myCanvas.repaint();
}
else if (c==aCommand4)
{myCanvas.demoType=4;
myCanvas.textShow="线条演示";
myCanvas.repaint();
}
else if (c==aCommand5)
{myCanvas.demoType=5;
myCanvas.textShow="图片演示";
myCanvas.repaint();
}
}
public class DemoCanvas extends Canvas{
public String textShow="坐标移动演示";
public int demoType=0;
Image imageLogo;
private int[]bRGB={
0xFFFF0000,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0xFFFF0000,
0x0000FF00,0x0000FF00,0x0000FF00,
0x0000FF00,0xFFFF0000,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
0x0000FF00,0x0000FF00,0xFFFF0000,
};
public DemoCanvas()
{
loadImage();
}
public void loadImage(){
try{imageLogo=Image.createImage("/pic.png");
}catch(IOException e){
System.out.println("load png resourse error"+e.getMessage());
imageLogo=null;
}
}
public void paint (Graphics g){
g.setColor(0xffffff);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(0x000000);
g.drawString(textShow,0,0,Graphics.TOP|Graphics.LEFT);
if(0==demoType)
drawType0(g);
else if (1==demoType)
drawType1(g);
else if (2==demoType)
drawType2(g);
else if (3==demoType)
drawType3(g);
else if (4==demoType)
drawType4(g);
else if (5==demoType)
drawType5(g);
}
public void drawType0(Graphics g)
{ for (int i=0;i<4;i++)
{g.translate(20,20);
g.drawString("坐标(0,0)",0,0,Graphics.TOP | Graphics.LEFT);
System.out.println("coordinate="+g.getTranslateX()+","+g.getTranslateY());
}
}
public void drawType1(Graphics g)
{ g.setColor(0x0000FF);
g.drawLine(getWidth()/2,0,getWidth()/2,getHeight());
g.drawLine(0,getHeight()/2,getWidth(),getHeight()/2);
g.setColor(0x000000);
g.drawString("TOP_LEFT",getWidth()/2,getHeight()/2,
Graphics.TOP|Graphics.LEFT);
g.drawString("BOTTOM_LEFT",getWidth()/2,getHeight()/2,
Graphics.BOTTOM|Graphics.LEFT);
g.drawString("TOP+RIGHT",getWidth()/2,getHeight()/2,
Graphics.TOP|Graphics.RIGHT);
g.drawString("BOTTOM_RIGHT",getWidth()/2,getHeight()/2,
Graphics.BOTTOM|Graphics.RIGHT);
}
public void drawType2(Graphics g)
{ g.setColor(0x00FF0000);
g.drawArc(20,30,30,30,0,90);
g.drawArc(55,30,30,30,0,-180);
g.drawArc(90,30,30,30,0,360);
g.setColor(0x0000FF00);
g.fillArc(20,65,30,30,0,90);
g.fillArc(55,65,30,30,0,-180);
g.fillArc(90,65,30,30,0,360);
}
public void drawType3(Graphics g)
{ g.setColor(0x00FF0000);
g.fillArc(40,40,110,110,0,130);
g.setColor(0x0000FF00);
g.fillArc(40,40,110,110,130,90);
g.setColor(0x000000FF);
g.fillArc(40,40,110,110,220,140);
}
public void drawType4(Graphics g)
{g.setStrokeStyle(Graphics.SOLID);
g.setColor(0x00000000);
g.drawLine(2,20,20,40);
g.drawLine(20,40,50,30);
g.drawLine(50,30,80,70);
g.drawLine(80,70,110,60);
g.setStrokeStyle(Graphics.DOTTED);
g.setColor(0x00FF0000);
g.drawLine(2,40,20,30);
g.drawLine(20,30,50,50);
g.drawLine(50,50,80,10);
g.drawLine(80,10,110,40);
}
public void drawType5(Graphics g)
{ if (null!=imageLogo)
g.drawImage(imageLogo,0,20,Graphics.TOP |
Graphics.LEFT);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -