首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

J2ME作图工具类Graphics

2012-09-28 
J2ME绘制工具类GraphicsGraphics是很重要的类在J2ME里,它有9个静态属性:1,弄清出坐标:在MIDP中的坐标的y方

J2ME绘制工具类Graphics

Graphics是很重要的类在J2ME里,它有9个静态属性:1,弄清出坐标:在MIDP中的坐标的y方向与我们平时的相反,它的y轴的方向是向下的.

2,弄清那些静态属性是不可以组合的,如:RIGHT和LEFT显然不能组合,这些组合我们不要想得太复杂,常识判断就够了

3,弄清各个静态属性的使用范围,那些可以修饰图片,那些可以修饰文本等等

4,要把绘制的对象想像成一个矩形,下面是我提供的入门级别的例子.

package datuu.srk.demo.canvas;

<o:p>?</o:p>

import javax.microedition.midlet.MIDlet;

import javax.microedition.midlet.MIDletStateChangeException;

import javax.microedition.lcdui.Canvas;

import javax.microedition.lcdui.Graphics;

import javax.microedition.lcdui.Image;

import java.io.IOException;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.Displayable;

<o:p>?</o:p>

public class ImageGraphicsDemo extends MIDlet {

??? private static ImageGraphicsDemo instance;

??? private static ImageGraphicsDemoCanvas displayImageGraphicsDemo;

??? public ImageGraphicsDemo() {

??????? instance = this;

??????? displayImageGraphicsDemo = new ImageGraphicsDemoCanvas();

??? }

??? protected void startApp() throws MIDletStateChangeException {

??????? Display.getDisplay(instance).setCurrent(displayImageGraphicsDemo);

??? }

<o:p>?</o:p>

??? protected void pauseApp() {

??? }

<o:p>?</o:p>

??? protected void destroyApp(boolean _boolean) throws

??????????? MIDletStateChangeException {

??? }

??? public static void? quitApp() {

??????? try {

??????????? instance.destroyApp(false);

??????? } catch(MIDletStateChangeException e) {

??????????? e.printStackTrace();

??????? }

??????? instance.notifyDestroyed();

??? }

}

class ImageGraphicsDemoCanvas extends Canvas implements CommandListener {

??? private Image image;

??? private static final int ADJUST =Graphics.HCENTER |Graphics.TOP??? ; //测试时候要改变的值

??? public ImageGraphicsDemoCanvas() {

??????? init();

??? }

??? protected? void paint(Graphics g) {

??????? g.setColor(0,255,0);

??????? int x = image.getWidth();

??????? int y = image.getHeight();

??????? System.out.println("现在的图片坐标是:("+x+","+y+")");

??????? g.drawImage(image,x,y,ADJUST);

??? }

??? public void init() {

??????? try {

??????????? image = Image.createImage("/dmusic.png");

??????? } catch(IOException e) {

??????????? System.out.println("打开图片出现异常");

??????????? e.printStackTrace();

??????? }

??????? this.addCommand(new Command("退出",Command.EXIT ,1));

??????? this.setCommandListener(this);

??? }

<o:p>?</o:p>

??? public void commandAction(Command command, Displayable displayable) {

??????? if(command.getCommandType() == Command.EXIT ) {

??????????? ImageGraphicsDemo.quitApp();

??????? }

??? }

}

<o:p>?</o:p>

下面是绘画线条的例子,注意要先设置所话的属性,再化

<o:p>?</o:p>

package datuu.srk.demo.canvas;

<o:p>?</o:p>

import javax.microedition.midlet.MIDlet;

import javax.microedition.midlet.MIDletStateChangeException;

import javax.microedition.lcdui.Canvas;

import javax.microedition.lcdui.Graphics;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.Displayable;

<o:p>?</o:p>

public class LineGraphicsDemo extends MIDlet {

??? private static LineGraphicsDemo instance;

??? private LineGraphicsDemoCanvas displayLineGraphicsDemoCanvas;

??? public LineGraphicsDemo() {

??????? instance = this;

??????? displayLineGraphicsDemoCanvas = new LineGraphicsDemoCanvas();

??? }

<o:p>?</o:p>

??? protected void startApp() throws MIDletStateChangeException {

??????? Display.getDisplay(instance).setCurrent(displayLineGraphicsDemoCanvas);

??? }

<o:p>?</o:p>

??? protected void pauseApp() {

??? }

<o:p>?</o:p>

??? protected void destroyApp(boolean _boolean) throws

??????????? MIDletStateChangeException {

??? }

<o:p>?</o:p>

??? public static void quitApp() {

??????? try {

??????????? instance.destroyApp(false);

??????? } catch (MIDletStateChangeException e) {

??????????? e.printStackTrace();

??????? }

??????? instance.notifyDestroyed();

??? }

}

<o:p>?</o:p>

<o:p>?</o:p>

class LineGraphicsDemoCanvas extends Canvas implements CommandListener {

??? private static final int ADJUST = Graphics.DOTTED | Graphics.HCENTER;

??? public LineGraphicsDemoCanvas() {

??????? this.addCommand(new Command("退出", Command.EXIT, 1));

??????? this.setCommandListener(this);

??? }

<o:p>?</o:p>

??? public void paint(Graphics g) {

<o:p>?</o:p>

??????? g.setColor(255, 255, 255);

??????? g.fillRect(0, 0, getWidth(), getHeight());

<o:p>?</o:p>

??????? g.setColor(255, 0, 0);

??? ????g.setStrokeStyle(Graphics.DOTTED); //虚线

??????? g.drawLine(10, 10, 100, 10);

<o:p>?</o:p>

??????? g.setColor(0, 255, 0);

??????? g.setStrokeStyle(Graphics.SOLID); //实线

??????? g.drawLine(10, 100, 100, 100);

<o:p>?</o:p>

??? }

<o:p>?</o:p>

??? public void commandAction(Command command, Displayable displayable) {

??????? if (command.getCommandType() == Command.EXIT) {

??????????? LineGraphicsDemo.quitApp();

??????? }

??? }

}

热点排行