程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> 在Canvas上繪制可修改的圖片

在Canvas上繪制可修改的圖片

編輯:J2ME
在Canvas上繪制可修改的圖片 作者:john    文章來源:corej2me    更新時間:2007-2-25 16:11:34 443 /*--------------------------------------------------
* MutableImage.Java
Java手機網[www.cnjm.Net]*
* Draw mutable image on a canvas
*
Java手機網[www.cnjm.Net]* Example from the book:     Core J2ME Technology
* Copyright John W. Muchow   http://www.CoreJ2ME.com
* You may use/modify for any non-commercial purpose
*-------------------------------------------------*/  
import Javax.microedition.midlet.*;
import Javax.microedition.lcdui.*;

public class MutableImageWithCanvas extends MIDlet
{
 private Display  display;     // The display
Java手機網[www.cnjm.Net] private ImageCanvas canvas;   // Canvas
 public MutableImageWithCanvas()
 {
   display = Display.getDisplay(this);
Java手機網[www.cnjm.Net]   canvas  = new ImageCanvas(this);
 }
 protected void startApp()
 {
   display.setCurrent( canvas );
 }
 protected void pauseApp()
 { }

 protected void destroyApp( boolean unconditional )
 { }
 public void exitMIDlet()
 {
   destroyApp(true);
   notifyDestroyed();
 }
}

/*--------------------------------------------------
* Class ImageCanvas
*
* Draw mutable image
*-------------------------------------------------*/
class ImageCanvas extends Canvas implements CommandListener
{
 private Command cmExit;  // Exit midlet
 private MutableImage midlet;
Java手機網[www.cnjm.Net] private Image im = null;
 private String message = "Core J2ME";
 public ImageCanvas(MutableImage midlet)
 {
   this.midlet = midlet;
   // Create exit command & listen for events
   cmExit = new Command("Exit", Command.EXIT, 1);
   addCommand(cmExit);
Java手機網[www.cnjm.Net]   setCommandListener(this);

   try
   {
     // Create mutable image
     im = Image.createImage(80, 20);

     // Get graphics object to draw onto the image        
Java手機網[www.cnjm.Net]     Graphics graphics = im.getGraphics();

     // Specify a font face, style and size
     Font font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
     graphics.setFont(font);

     // Draw a filled (black) rectangle
     graphics.setColor(0, 0, 0);
     graphics.fillRoundRect(0,0, im.getWidth()-1, im.getHeight()-1, 20, 20);
     // Center text horizontally in the image. Draw text in white
     graphics.setColor(255, 255, 255);          
     graphics.drawString(message,
       (im.getWidth() / 2) - (font.stringWidth(message) / 2), 0,
Java手機網[www.cnjm.Net]        Graphics.TOP | Graphics.LEFT);
   }
   catch (Exception e)
   {
     System.err.println("Error during image creation");
   }    
 }

 /*--------------------------------------------------
 * Draw mutable image
 *-------------------------------------------------*/
 protected void paint(Graphics g)
 {
   // Center the image on the display
   if (im != null)g.drawImage(im, getWidth() / 2, getHeight() / 2, Graphics.VCENTER | Graphics.HCENTER);
 }

Java手機網[www.cnjm.Net] public void commandAction(Command c, Displayable d)
Java手機網[www.cnjm.Net] {
   if (c == cmExit)
     midlet.exitMIDlet();
 }
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved