This will probably look like a really stupid piece of code.. but it works
My question is, how can I write the last part so there is only one extended Canvas class that can recieve a parameter for the image number
Thanks
My question is, how can I write the last part so there is only one extended Canvas class that can recieve a parameter for the image number
Thanks
Code:
import java.io.IOException;
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.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;
public class MyImages extends MIDlet implements CommandListener {
// The MIDlet's Display object
private Display mydisplay;
// Flag indicating first call of startApp
protected boolean started;
// Exit command
private Command exitCommand;
// Back to examples list command
private Command backCommand;
// The example selection list
private List examplesList;
// The Canvases used to demonstrate different Items
private Canvas[] canvases;
// The example names. Used to populate the list.
private String[] examples = {
"Image001", "Image002", "Image003", "Image004", "Image005", "Image006"
};
protected void startApp() {
if (!started) {
started = true;
mydisplay = Display.getDisplay(this);
// Create the common commands
exitCommand = new Command("Exit", Command.EXIT, 0);
backCommand = new Command("Back", Command.BACK, 1);
// Create the canvases
canvases = new Canvas[examples.length];
canvases[0] = createDrawImageCanvas(0);
canvases[1] = createDrawImageCanvas(1);
canvases[2] = createDrawImageCanvas(2);
canvases[3] = createDrawImageCanvas(3);
canvases[4] = createDrawImageCanvas(4);
canvases[5] = createDrawImageCanvas(5);
// Create the list of examples
examplesList = new List("Select a picture", List.IMPLICIT);
for (int i = 0; i < examples.length; i++) {
examplesList.append(examples[i], null);
}
examplesList.setCommandListener(this);
// Start with the List
mydisplay.setCurrent(examplesList);
}
}
protected void pauseApp() {
}
protected void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable d) {
if (d == examplesList) {
// New example selected
int index = examplesList.getSelectedIndex();
mydisplay.setCurrent(canvases[index]);
} else if (c == exitCommand) {
// Exit. No need to call destroyApp
// because it is empty.
notifyDestroyed();
} else if (c == backCommand) {
// Go back to main selection list
mydisplay.setCurrent(examplesList);
}
}
// Create the Canvas for the image drawing example
private Canvas createDrawImageCanvas(int idx) {
switch (idx) {
case 0 :
Canvas canvasx0 = new DrawImageCanvas0();
canvasx0.addCommand(exitCommand);
canvasx0.addCommand(backCommand);
canvasx0.setCommandListener(this);
return canvasx0;
case 1 :
Canvas canvasx1 = new DrawImageCanvas1();
canvasx1.addCommand(exitCommand);
canvasx1.addCommand(backCommand);
canvasx1.setCommandListener(this);
return canvasx1;
case 2 :
Canvas canvasx2 = new DrawImageCanvas2();
canvasx2.addCommand(exitCommand);
canvasx2.addCommand(backCommand);
canvasx2.setCommandListener(this);
return canvasx2;
case 3 :
Canvas canvasx3 = new DrawImageCanvas3();
canvasx3.addCommand(exitCommand);
canvasx3.addCommand(backCommand);
canvasx3.setCommandListener(this);
return canvasx3;
case 4 :
Canvas canvasx4 = new DrawImageCanvas4();
canvasx4.addCommand(exitCommand);
canvasx4.addCommand(backCommand);
canvasx4.setCommandListener(this);
return canvasx4;
case 5 :
Canvas canvasx5 = new DrawImageCanvas5();
canvasx5.addCommand(exitCommand);
canvasx5.addCommand(backCommand);
canvasx5.setCommandListener(this);
return canvasx5;
}
Canvas canvasx0 = new DrawImageCanvas0();
canvasx0.addCommand(exitCommand);
canvasx0.addCommand(backCommand);
canvasx0.setCommandListener(this);
return canvasx0;
}
}
// A canvas that illustrates image drawing
class DrawImageCanvas0 extends Canvas {
static Image image;
public void paint(Graphics g) {
int width = getWidth();
int height = getHeight();
int idx = 1;
// Fill the background using black
g.setColor(0);
g.fillRect(0, 0, width, height);
// Load an image from the MIDlet resources
if (image == null) {
try {
image = Image.createImage("/earth" + 0 + ".png");
} catch (IOException ex) {
g.setColor(0xffffff);
g.drawString("Failed to load image!", 0, 0, Graphics.TOP | Graphics.LEFT);
return;
}
}
g.drawImage(image, 0, 0, Graphics.TOP | Graphics.LEFT);
}
}
// A canvas that illustrates image drawing
class DrawImageCanvas1 extends Canvas {
static Image image;
public void paint(Graphics g) {
int width = getWidth();
int height = getHeight();
int idx = 1;
// Fill the background using black
g.setColor(0);
g.fillRect(0, 0, width, height);
// Load an image from the MIDlet resources
if (image == null) {
try {
image = Image.createImage("/earth" + 1 + ".png");
} catch (IOException ex) {
g.setColor(0xffffff);
g.drawString("Failed to load image!", 0, 0, Graphics.TOP | Graphics.LEFT);
return;
}
}
g.drawImage(image, 0, 0, Graphics.TOP | Graphics.LEFT);
}
}
// A canvas that illustrates image drawing
class DrawImageCanvas2 extends Canvas {
static Image image;
public void paint(Graphics g) {
int width = getWidth();
int height = getHeight();
int idx = 1;
// Fill the background using black
g.setColor(0);
g.fillRect(0, 0, width, height);
// Load an image from the MIDlet resources
if (image == null) {
try {
image = Image.createImage("/earth" + 2 + ".png");
} catch (IOException ex) {
g.setColor(0xffffff);
g.drawString("Failed to load image!", 0, 0, Graphics.TOP | Graphics.LEFT);
return;
}
}
g.drawImage(image, 0, 0, Graphics.TOP | Graphics.LEFT);
}
}
// A canvas that illustrates image drawing
class DrawImageCanvas3 extends Canvas {
static Image image;
public void paint(Graphics g) {
int width = getWidth();
int height = getHeight();
int idx = 1;
// Fill the background using black
g.setColor(0);
g.fillRect(0, 0, width, height);
// Load an image from the MIDlet resources
if (image == null) {
try {
image = Image.createImage("/earth" + 3 + ".png");
} catch (IOException ex) {
g.setColor(0xffffff);
g.drawString("Failed to load image!", 0, 0, Graphics.TOP | Graphics.LEFT);
return;
}
}
g.drawImage(image, 0, 0, Graphics.TOP | Graphics.LEFT);
}
}
// A canvas that illustrates image drawing
class DrawImageCanvas4 extends Canvas {
static Image image;
public void paint(Graphics g) {
int width = getWidth();
int height = getHeight();
int idx = 1;
// Fill the background using black
g.setColor(0);
g.fillRect(0, 0, width, height);
// Load an image from the MIDlet resources
if (image == null) {
try {
image = Image.createImage("/earth" + 4 + ".png");
} catch (IOException ex) {
g.setColor(0xffffff);
g.drawString("Failed to load image!", 0, 0, Graphics.TOP | Graphics.LEFT);
return;
}
}
g.drawImage(image, 0, 0, Graphics.TOP | Graphics.LEFT);
}
}
// A canvas that illustrates image drawing
class DrawImageCanvas5 extends Canvas {
static Image image;
public void paint(Graphics g) {
int width = getWidth();
int height = getHeight();
int idx = 1;
// Fill the background using black
g.setColor(0);
g.fillRect(0, 0, width, height);
// Load an image from the MIDlet resources
if (image == null) {
try {
image = Image.createImage("/earth" + 5 + ".png");
} catch (IOException ex) {
g.setColor(0xffffff);
g.drawString("Failed to load image!", 0, 0, Graphics.TOP | Graphics.LEFT);
return;
}
}
g.drawImage(image, 0, 0, Graphics.TOP | Graphics.LEFT);
}
}
Comment