Java by API/javax.microedition.lcdui/Canvas
Содержание
Canvas.DOWN
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; 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 Navigate2MIDlet extends MIDlet implements CommandListener {
private Command exitCommand; Displayable nd; Image image = null; public Navigate2MIDlet() { try { image = Image.createImage("/J.png"); } catch (Exception e) { } Display display = Display.getDisplay(this); nd = new Navigate2Canvas(image); exitCommand = new Command("exit", Command.EXIT, 1); nd.addCommand(exitCommand); nd.setCommandListener(this); display.setCurrent(nd); } public void startApp() { } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { notifyDestroyed(); }
} class Navigate2Canvas extends Canvas {
private Image image; private int newX = 0; private int newY = 0; private int stepX = 0; private int stepY = 0; public Navigate2Canvas(Image image) { this.image = image; newX = 0; newY = 0; stepX = getWidth() / 4; stepY = getHeight() / 4; } public void steppingXY(int x, int y) { newX += x; newY += y; } public void paint(Graphics g) { int width = this.getWidth(); int height = this.getHeight(); g.setGrayScale(255); g.fillRect(0, 0, width - 1, height - 1); g.setGrayScale(0); g.drawRect(0, 0, width - 1, height - 1); g.translate(newX, newY); g.drawImage(image, 0, 0, g.TOP | g.LEFT); } protected void keyPressed(int keyCode) { int gameaction = getGameAction(keyCode); switch (gameaction) { case UP: steppingXY(0, stepY); break; case DOWN: steppingXY(0, -stepY); break; case LEFT: steppingXY(stepX, 0); break; case RIGHT: steppingXY(-stepX, 0); break; } repaint(); }
}
</source>
Canvas.FIRE
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Graphics; import javax.microedition.midlet.MIDlet; public class GameActionMIDlet extends MIDlet implements CommandListener {
private Command exitCommand; Display display; Displayable d; public void startApp() { Display display = Display.getDisplay(this); d = new GameActionCanvas(); exitCommand = new Command("Exit", Command.EXIT, 1); d.addCommand(exitCommand); d.setCommandListener(this); display.setCurrent(d); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { notifyDestroyed(); }
} class GameActionCanvas extends Canvas {
int width = 0; int height = 0; String aMessage = "message"; public void paint(Graphics g) { width = getWidth(); height = getHeight(); g.setGrayScale(255); g.fillRect(0, 0, width - 1, height - 1); g.setGrayScale(0); g.drawRect(0, 0, width - 1, height - 1); g.drawString(aMessage, 10, 10, Graphics.TOP | Graphics.LEFT); } protected void keyPressed(int keyCode) { int gameAction = getGameAction(keyCode); switch (gameAction) { case UP: aMessage = "Up"; break; case DOWN: aMessage = "Down"; break; case LEFT: aMessage = "Left"; break; case RIGHT: aMessage = "Right"; break; case FIRE: aMessage = "Send"; break; case GAME_A: aMessage = "GAME_A"; break; case GAME_B: aMessage = "GAME_B"; break; case GAME_C: aMessage = "GAME_C"; break; case GAME_D: aMessage = "GAME_D"; break; default: aMessage = ""; break; } repaint(); }
}
</source>
Canvas.GAME_D
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Graphics; import javax.microedition.midlet.MIDlet; public class GameActionMIDlet extends MIDlet implements CommandListener {
private Command exitCommand; Display display; Displayable d; public void startApp() { Display display = Display.getDisplay(this); d = new GameActionCanvas(); exitCommand = new Command("Exit", Command.EXIT, 1); d.addCommand(exitCommand); d.setCommandListener(this); display.setCurrent(d); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { notifyDestroyed(); }
} class GameActionCanvas extends Canvas {
int width = 0; int height = 0; String aMessage = "message"; public void paint(Graphics g) { width = getWidth(); height = getHeight(); g.setGrayScale(255); g.fillRect(0, 0, width - 1, height - 1); g.setGrayScale(0); g.drawRect(0, 0, width - 1, height - 1); g.drawString(aMessage, 10, 10, Graphics.TOP | Graphics.LEFT); } protected void keyPressed(int keyCode) { int gameAction = getGameAction(keyCode); switch (gameAction) { case UP: aMessage = "Up"; break; case DOWN: aMessage = "Down"; break; case LEFT: aMessage = "Left"; break; case RIGHT: aMessage = "Right"; break; case FIRE: aMessage = "Send"; break; case GAME_A: aMessage = "GAME_A"; break; case GAME_B: aMessage = "GAME_B"; break; case GAME_C: aMessage = "GAME_C"; break; case GAME_D: aMessage = "GAME_D"; break; default: aMessage = ""; break; } repaint(); }
}
</source>
Canvas: getKeyName(int keyCode)
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Graphics; import javax.microedition.midlet.MIDlet; public class KeyEventsMIDlet extends MIDlet implements CommandListener {
private Command exitCommand; Display display; Displayable d; public void startApp() { Display display = Display.getDisplay(this); d = new KeyEventsCanvas(); exitCommand = new Command("Exit", Command.EXIT, 1); d.addCommand(exitCommand); d.setCommandListener(this); display.setCurrent(d); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { notifyDestroyed(); }
} class KeyEventsCanvas extends Canvas {
int width = 0; int height = 0; String aMessage = "message"; public void paint(Graphics g) { width = getWidth(); height = getHeight(); g.setGrayScale(255); g.fillRect(0, 0, width - 1, height - 1); g.setGrayScale(0); g.drawRect(0, 0, width - 1, height - 1); g.drawString(aMessage, 10, 10, Graphics.TOP | Graphics.LEFT); } protected void keyPressed(int keyCode) { aMessage = getKeyName(keyCode); if (aMessage.equals("2")) aMessage = "2"; repaint(); }
}
</source>
Canvas.getWidth()
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.StringItem; import javax.microedition.midlet.MIDlet; public class AttributesMIDlet extends MIDlet
implements CommandListener { private Display display; protected boolean started; private Command exitCommand; protected void startApp() { if (!started) { display = Display.getDisplay(this); Canvas canvas = new DummyCanvas(); Form form = new Form("Attributes"); exitCommand = new Command("Exit", Command.EXIT, 0); form.addCommand(exitCommand); boolean isColor = display.isColor(); form.append(new StringItem(isColor ? "Colors: " : "Grays: ", String.valueOf(display.numColors()))); form.append(new StringItem("Width: ", String.valueOf(canvas.getWidth()))); form.append(new StringItem("Height: ", String.valueOf(canvas.getHeight()))); form.append(new StringItem("Pointer? ", String.valueOf(canvas.hasPointerEvents()))); form.append(new StringItem("Motion? ",String.valueOf(canvas.hasPointerMotionEvents()))); form.append(new StringItem("Repeat? ",String.valueOf(canvas.hasRepeatEvents()))); form.append(new StringItem("Buffered? ", String.valueOf(canvas.isDoubleBuffered()))); form.setCommandListener(this); display.setCurrent(form); started = true; } } protected void pauseApp() { } protected void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable d) { if (c == exitCommand) { notifyDestroyed(); } } static class DummyCanvas extends Canvas { protected void paint(Graphics g) { } }
}
</source>
Canvas.hasPointerEvents()
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.StringItem; import javax.microedition.midlet.MIDlet; public class AttributesMIDlet extends MIDlet
implements CommandListener { private Display display; protected boolean started; private Command exitCommand; protected void startApp() { if (!started) { display = Display.getDisplay(this); Canvas canvas = new DummyCanvas(); Form form = new Form("Attributes"); exitCommand = new Command("Exit", Command.EXIT, 0); form.addCommand(exitCommand); boolean isColor = display.isColor(); form.append(new StringItem(isColor ? "Colors: " : "Grays: ", String.valueOf(display.numColors()))); form.append(new StringItem("Width: ", String.valueOf(canvas.getWidth()))); form.append(new StringItem("Height: ", String.valueOf(canvas.getHeight()))); form.append(new StringItem("Pointer? ", String.valueOf(canvas.hasPointerEvents()))); form.append(new StringItem("Motion? ",String.valueOf(canvas.hasPointerMotionEvents()))); form.append(new StringItem("Repeat? ",String.valueOf(canvas.hasRepeatEvents()))); form.append(new StringItem("Buffered? ", String.valueOf(canvas.isDoubleBuffered()))); form.setCommandListener(this); display.setCurrent(form); started = true; } } protected void pauseApp() { } protected void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable d) { if (c == exitCommand) { notifyDestroyed(); } } static class DummyCanvas extends Canvas { protected void paint(Graphics g) { } }
}
</source>
Canvas.hasRepeatEvents()
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.StringItem; import javax.microedition.midlet.MIDlet; public class AttributesMIDlet extends MIDlet
implements CommandListener { private Display display; protected boolean started; private Command exitCommand; protected void startApp() { if (!started) { display = Display.getDisplay(this); Canvas canvas = new DummyCanvas(); Form form = new Form("Attributes"); exitCommand = new Command("Exit", Command.EXIT, 0); form.addCommand(exitCommand); boolean isColor = display.isColor(); form.append(new StringItem(isColor ? "Colors: " : "Grays: ", String.valueOf(display.numColors()))); form.append(new StringItem("Width: ", String.valueOf(canvas.getWidth()))); form.append(new StringItem("Height: ", String.valueOf(canvas.getHeight()))); form.append(new StringItem("Pointer? ", String.valueOf(canvas.hasPointerEvents()))); form.append(new StringItem("Motion? ",String.valueOf(canvas.hasPointerMotionEvents()))); form.append(new StringItem("Repeat? ",String.valueOf(canvas.hasRepeatEvents()))); form.append(new StringItem("Buffered? ", String.valueOf(canvas.isDoubleBuffered()))); form.setCommandListener(this); display.setCurrent(form); started = true; } } protected void pauseApp() { } protected void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable d) { if (c == exitCommand) { notifyDestroyed(); } } static class DummyCanvas extends Canvas { protected void paint(Graphics g) { } }
}
</source>
Canvas.LEFT
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; 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 Navigate2MIDlet extends MIDlet implements CommandListener {
private Command exitCommand; Displayable nd; Image image = null; public Navigate2MIDlet() { try { image = Image.createImage("/J.png"); } catch (Exception e) { } Display display = Display.getDisplay(this); nd = new Navigate2Canvas(image); exitCommand = new Command("exit", Command.EXIT, 1); nd.addCommand(exitCommand); nd.setCommandListener(this); display.setCurrent(nd); } public void startApp() { } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { notifyDestroyed(); }
} class Navigate2Canvas extends Canvas {
private Image image; private int newX = 0; private int newY = 0; private int stepX = 0; private int stepY = 0; public Navigate2Canvas(Image image) { this.image = image; newX = 0; newY = 0; stepX = getWidth() / 4; stepY = getHeight() / 4; } public void steppingXY(int x, int y) { newX += x; newY += y; } public void paint(Graphics g) { int width = this.getWidth(); int height = this.getHeight(); g.setGrayScale(255); g.fillRect(0, 0, width - 1, height - 1); g.setGrayScale(0); g.drawRect(0, 0, width - 1, height - 1); g.translate(newX, newY); g.drawImage(image, 0, 0, g.TOP | g.LEFT); } protected void keyPressed(int keyCode) { int gameaction = getGameAction(keyCode); switch (gameaction) { case UP: steppingXY(0, stepY); break; case DOWN: steppingXY(0, -stepY); break; case LEFT: steppingXY(stepX, 0); break; case RIGHT: steppingXY(-stepX, 0); break; } repaint(); }
}
</source>
Canvas.RIGHT
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; 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 Navigate2MIDlet extends MIDlet implements CommandListener {
private Command exitCommand; Displayable nd; Image image = null; public Navigate2MIDlet() { try { image = Image.createImage("/J.png"); } catch (Exception e) { } Display display = Display.getDisplay(this); nd = new Navigate2Canvas(image); exitCommand = new Command("exit", Command.EXIT, 1); nd.addCommand(exitCommand); nd.setCommandListener(this); display.setCurrent(nd); } public void startApp() { } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { notifyDestroyed(); }
} class Navigate2Canvas extends Canvas {
private Image image; private int newX = 0; private int newY = 0; private int stepX = 0; private int stepY = 0; public Navigate2Canvas(Image image) { this.image = image; newX = 0; newY = 0; stepX = getWidth() / 4; stepY = getHeight() / 4; } public void steppingXY(int x, int y) { newX += x; newY += y; } public void paint(Graphics g) { int width = this.getWidth(); int height = this.getHeight(); g.setGrayScale(255); g.fillRect(0, 0, width - 1, height - 1); g.setGrayScale(0); g.drawRect(0, 0, width - 1, height - 1); g.translate(newX, newY); g.drawImage(image, 0, 0, g.TOP | g.LEFT); } protected void keyPressed(int keyCode) { int gameaction = getGameAction(keyCode); switch (gameaction) { case UP: steppingXY(0, stepY); break; case DOWN: steppingXY(0, -stepY); break; case LEFT: steppingXY(stepX, 0); break; case RIGHT: steppingXY(-stepX, 0); break; } repaint(); }
}
</source>
Canvas.setCommandListener(CommandListener l)
<source lang="java">
/* License
* * Copyright 1994-2004 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistribution of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * * Redistribution in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Sun Microsystems, Inc. or the names of contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * This software is provided "AS IS," without a warranty of any kind. ALL * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * * You acknowledge that this software is not designed, licensed or intended * for use in the design, construction, operation or maintenance of any * nuclear facility. */
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Graphics; import javax.microedition.midlet.MIDlet; public class EventEx3 extends MIDlet {
Display display; Command exit; public EventEx3() { display = Display.getDisplay(this); } public void destroyApp(boolean unconditional) { } public void pauseApp() { System.out.println("App paused."); } public void startApp() { display = Display.getDisplay(this); Canvas canvas = new Canvas() { // anonymous class public void paint(Graphics g) { } protected void keyPressed(int keyCode) { if (keyCode > 0) { System.out.println("keyPressed " + ((char) keyCode)); } else { System.out.println("keyPressed action " + getGameAction(keyCode)); } } protected void keyReleased(int keyCode) { if (keyCode > 0) { System.out.println("keyReleased " + ((char) keyCode)); } else { System.out.println("keyReleased action " + getGameAction(keyCode)); } } }; // end of anonymous class exit = new Command("Exit", Command.STOP, 1); canvas.addCommand(exit); canvas.setCommandListener(new CommandListener() { public void commandAction(Command c, Displayable d) { if (c == exit) { notifyDestroyed(); } else { System.out.println("Saw the command: " + c); } } }); display.setCurrent(canvas); }
}
</source>
Canvas.UP
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; 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 Navigate2MIDlet extends MIDlet implements CommandListener {
private Command exitCommand; Displayable nd; Image image = null; public Navigate2MIDlet() { try { image = Image.createImage("/J.png"); } catch (Exception e) { } Display display = Display.getDisplay(this); nd = new Navigate2Canvas(image); exitCommand = new Command("exit", Command.EXIT, 1); nd.addCommand(exitCommand); nd.setCommandListener(this); display.setCurrent(nd); } public void startApp() { } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { notifyDestroyed(); }
} class Navigate2Canvas extends Canvas {
private Image image; private int newX = 0; private int newY = 0; private int stepX = 0; private int stepY = 0; public Navigate2Canvas(Image image) { this.image = image; newX = 0; newY = 0; stepX = getWidth() / 4; stepY = getHeight() / 4; } public void steppingXY(int x, int y) { newX += x; newY += y; } public void paint(Graphics g) { int width = this.getWidth(); int height = this.getHeight(); g.setGrayScale(255); g.fillRect(0, 0, width - 1, height - 1); g.setGrayScale(0); g.drawRect(0, 0, width - 1, height - 1); g.translate(newX, newY); g.drawImage(image, 0, 0, g.TOP | g.LEFT); } protected void keyPressed(int keyCode) { int gameaction = getGameAction(keyCode); switch (gameaction) { case UP: steppingXY(0, stepY); break; case DOWN: steppingXY(0, -stepY); break; case LEFT: steppingXY(stepX, 0); break; case RIGHT: steppingXY(-stepX, 0); break; } repaint(); }
}
</source>
extends Canvas
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Graphics; import javax.microedition.midlet.MIDlet; public class TextAnchorMIDlet extends MIDlet implements CommandListener {
private Command exitCommand; Display display; public void startApp() { Display display = Display.getDisplay(this); Displayable d = new TextAnchorCanvas(); exitCommand = new Command("exit", Command.EXIT, 1); d.addCommand(exitCommand); d.setCommandListener(this); display.setCurrent(d); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { notifyDestroyed(); }
} class TextAnchorCanvas extends Canvas {
int width = 0; int height = 0; public void paint(Graphics g) { width = getWidth(); height = getHeight(); g.setGrayScale(255); g.fillRect(0, 0, width - 1, height - 1); g.setGrayScale(0); g.drawRect(0, 0, width - 1, height - 1); g.drawString("TEXT", width / 2, height / 2, Graphics.BASELINE | Graphics.HCENTER); }
}
</source>