Clipping Region : Clip « J2ME « Java






Clipping Region

Clipping Region

//jad file (please verify the jar size)
/*
MIDlet-Name: ClippingRegion
MIDlet-Version: 1.0
MIDlet-Vendor: MyCompany
MIDlet-Jar-URL: ClippingRegion.jar
MIDlet-1: ClippingRegion, , ClippingRegion
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
MIDlet-JAR-SIZE: 100

*/
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.midlet.MIDlet;

public class ClippingRegion extends MIDlet {

  private Display display;

  private MyCanvas canvas;

  public ClippingRegion() {
    display = Display.getDisplay(this);
    canvas = new MyCanvas(this);
  }

  protected void startApp() {
    display.setCurrent(canvas);
  }

  protected void pauseApp() {
  }

  protected void destroyApp(boolean unconditional) {
  }

  public void exitMIDlet() {
    destroyApp(true);
    notifyDestroyed();
  }

  public Display getDisplay() {
    return display;

  }
}

class MyCanvas extends Canvas implements CommandListener {
  private Command exit = new Command("Exit", Command.EXIT, 1);

  private ClippingRegion clippingRegion;

  private Image image = null;

  public MyCanvas(ClippingRegion clippingRegion) {
    this.clippingRegion = clippingRegion;
    
    addCommand(exit);
    setCommandListener(this);
    try {
      image = Image.createImage(70, 70);
      Graphics graphics = image.getGraphics();
      graphics.setColor(255, 0, 0);
      graphics.fillArc(10, 10, 60, 50, 180, 180);
    } catch (Exception error) {
      Alert alert = new Alert("Failure", "Creating Image", null, null);
      alert.setTimeout(Alert.FOREVER);
      this.clippingRegion.getDisplay().setCurrent(alert);
    }
  }

  protected void paint(Graphics graphics) {
    if (image != null) {
      graphics.setColor(255, 255, 255);
      graphics.fillRect(0, 0, getWidth(), getHeight());
      graphics.setClip(35, 35, 40, 40);
      graphics.drawImage(image, 30, 30, Graphics.VCENTER | Graphics.HCENTER);
    }
  }

  public void commandAction(Command command, Displayable display) {
    if (command == exit) {
      clippingRegion.exitMIDlet();
    }
  }
}


           
       








Related examples in the same category

1.Move a clipping region around a CanvasMove a clipping region around a Canvas