Home J2me Creating Canvas Form Example



Creating Canvas Form Example
Posted on: October 24, 2008 at 12:00 AM
This example shows that how to use the Canvas Class in a Form. In this example we take two field in which integer number passed from the form and result will display on a Canvas circle.

Creating Canvas Form Example

     

This example shows that how to use the Canvas Class in a Form. In this example we take two field in which integer number passed from the form and result will display on a Canvas circle. The Following methods are used in this example:

  • getWidth()
  • getHeight()
  • setColor()
  • fillRect()
  • setGrayScale()
  • drawString()

We calculate the both integer value ("A" and "B") in the calculator() function and store the result in a integer value ("result") variable which is integer value.

See The Application Below:

 

 

Source Code CanvasForm.java

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class CanvasForm extends MIDlet implements CommandListener{
  private Display display;
  private Form form;
  private Displayable current;
  private TextField one, two;
  private StringItem item;
  private long result;
  private Command quit, add ;
  private CanvasClass canvas;
  int first=0, second=0;

  public CanvasForm(){
  form = new Form("Calculator");
  one = new TextField(null, "10000002", 8, TextField.NUMERIC );
  two = new TextField(null, "10000003", 8, TextField.NUMERIC );
  item = new StringItem("Result", "");
  quit = new Command("Quit", Command.EXIT, 0);
  add = new Command("Add", Command.SCREEN, 0);
  form.append(one);
  form.append(two);
  form.append(item);
  form.addCommand(add);
  form.addCommand(quit);
  form.setCommandListener(this);
  }

  public void startApp(){
  display=Display.getDisplay(this);
  if (current!=null)
  display.setCurrent(current);
  else{
  display.setCurrent(form);
  current=form;
  }
  }

  public void pauseApp(){}

  public void destroyApp(boolean b){}
  
  private void calculate(){
  try {
  first = Integer.parseInt( one.getString() );
  second = Integer.parseInt( two.getString() );
  result = first + second ;
  item.setText( result + "" );
  } catch (NumberFormatException e){
  item.setText("unknown");
  e.printStackTrace();
  }
  }

  public void commandAction(Command c, Displayable s){
  if (c == quit){
  notifyDestroyed();
  return;
  }
  calculate();
  if (canvas==null) canvas= new CanvasClass() ;
  current=canvas;
  display.setCurrent(canvas);
  }

  class CanvasClass extends Canvas implements CommandListener{
  CanvasClass(){
  this.addCommand( new Command("Back", Command.BACK, 0 ) );
  this.setCommandListener(this);
  }

  protected void paint(Graphics g){
  int w = getWidth();
  int h = getHeight();
  g.setColor(244,244,244);
  g.fillRect( 0,0,w,h );
  g.setGrayScale(12*14);
  h = Math.min( w, h );

  long mf = 100000000;
  int angle = (int)(( (first*(36000*mf/result)) +50*mf)/(100*mf)) ;
  int origin=180;
  g.fillArc(0,0,h,h, origin, (int)angle);
  g.setGrayScale(13*16);
  g.fillArc(0,0,h,h, (int)(origin+angle), (int)(360-angle) );
  
  g.setColor(123);
  g.drawString("A = "+first+"  ", h/2, h/2-10, Graphics.BASELINE|Graphics.RIGHT);
  g.drawString("  B = "+second, h/2, h/2-10, Graphics.BASELINE|Graphics.LEFT);
  g.drawString("Total = "+(first+second), h/2, h/2, Graphics.TOP|Graphics.HCENTER);

  }

  public void commandAction( Command c, Displayable d){
  current=form;
  display.setCurrent(form);
  }
  }
} 

Download Source Code

Related Tags for Creating Canvas Form Example:
cclassormformcanvasintegerseddisplayfieldnumberintthisshowforieexampleirctoexamsseldciwssheilcirclecanspluseulresultfrominrmpassasmntplaycaispclesrchowxawhichxampssuspatkisirhallmplandvatwssthshocirhatdisppleplndonomo


More Tutorials from this section

Ask Questions?    Discuss: Creating Canvas Form Example   View All Comments

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 

Ask Questions?

If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.

Ask your questions, our development team will try to give answers to your questions.