Java Tutorial/J2ME/Draw String
Содержание
change font and draw string
<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.Font; import javax.microedition.lcdui.Graphics; import javax.microedition.midlet.MIDlet; public class J2METextExample extends MIDlet {
private Display display; private MyCanvas canvas; public J2METextExample() { 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(); }
} class MyCanvas extends Canvas implements CommandListener {
private Command exit; private J2METextExample textExample; public MyCanvas(J2METextExample textExample) { this.textExample = textExample; exit = new Command("Exit", Command.EXIT, 1); addCommand(exit); setCommandListener(this); } protected void paint(Graphics graphics) { graphics.setColor(255, 0, 0); graphics.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_SMALL)); graphics.drawString("Profound statement.", 50, 10, Graphics.HCENTER | Graphics.BASELINE); } public void commandAction(Command command, Displayable displayable) { if (command == exit) { textExample.exitMIDlet(); } }
}</source>
Draw Rectangle and string
<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.Font; import javax.microedition.lcdui.Graphics; import javax.microedition.midlet.MIDlet; public class BoxTextMIDlet extends MIDlet {
public void startApp() { Displayable d = new BoxTextCanvas(); d.addCommand(new Command("Exit", Command.EXIT, 0)); d.setCommandListener(new CommandListener() { public void commandAction(Command c, Displayable s) { notifyDestroyed(); } }); Display.getDisplay(this).setCurrent(d); } public void pauseApp() { } public void destroyApp(boolean unconditional) { }
} class BoxTextCanvas extends Canvas {
private Font mFont; public BoxTextCanvas() { mFont = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_LARGE); } public void paint(Graphics g) { int w = getWidth(); int h = getHeight(); g.setColor(0xffffff); g.fillRect(0, 0, w, h); g.setColor(0x000000); String s = "dolce"; int stringWidth = mFont.stringWidth(s); int stringHeight = mFont.getHeight(); int x = (w - stringWidth) / 2; int y = h / 2; g.setFont(mFont); g.drawString(s, x, y, Graphics.TOP | Graphics.LEFT); g.drawRect(x, y, stringWidth, stringHeight); }
}</source>
Draw string
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Graphics; import javax.microedition.midlet.MIDlet; public class DrawStringGraphicsMIDlet extends MIDlet {
private Display display; protected void startApp() { Canvas canvas = new LineCanvas(); display = Display.getDisplay(this); display.setCurrent(canvas); } protected void pauseApp() { } protected void destroyApp(boolean unconditional) { }
} class LineCanvas extends Canvas {
public void paint(Graphics g) { int width = getWidth(); int height = getHeight(); g.setColor(0); g.setStrokeStyle(Graphics.SOLID); g.drawString("Top left", 0, 0, Graphics.TOP | Graphics.LEFT);
}
}</source>
Draw string on the top and 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.midlet.MIDlet; public class TextMIDlet extends MIDlet {
public void startApp() { Displayable d = new TextCanvas(); d.addCommand(new Command("Exit", Command.EXIT, 0)); d.setCommandListener(new CommandListener() { public void commandAction(Command c, Displayable s) { notifyDestroyed(); } }); Display.getDisplay(this).setCurrent(d); } public void pauseApp() { } public void destroyApp(boolean unconditional) { }
} class TextCanvas extends Canvas {
public void paint(Graphics g) { int w = getWidth(); int h = getHeight(); g.setColor(0xffffff); g.fillRect(0, 0, w, h); g.setColor(0x000000); g.drawString("corner", 0, 0, Graphics.TOP | Graphics.LEFT); }
}</source>
Draw string to the base line and horizontal center
<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 HorizontalCenterTextMIDlet extends MIDlet {
public void startApp() { Displayable d = new TextCanvas(); d.addCommand(new Command("Exit", Command.EXIT, 0)); d.setCommandListener(new CommandListener() { public void commandAction(Command c, Displayable s) { notifyDestroyed(); } }); Display.getDisplay(this).setCurrent(d); } public void pauseApp() { } public void destroyApp(boolean unconditional) { }
} class TextCanvas extends Canvas {
public void paint(Graphics g) { int w = getWidth(); int h = getHeight(); g.setColor(0xffffff); g.fillRect(0, 0, w, h); g.setColor(0x000000); g.drawString("AAA", w / 2, h / 2, Graphics.BASELINE | Graphics.HCENTER); }
}</source>
Draw string to the bottom and 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.midlet.MIDlet; public class BottomRightTextMIDlet extends MIDlet {
public void startApp() { Displayable d = new TextCanvas(); d.addCommand(new Command("Exit", Command.EXIT, 0)); d.setCommandListener(new CommandListener() { public void commandAction(Command c, Displayable s) { notifyDestroyed(); } }); Display.getDisplay(this).setCurrent(d); } public void pauseApp() { } public void destroyApp(boolean unconditional) { }
} class TextCanvas extends Canvas {
public void paint(Graphics g) { int w = getWidth(); int h = getHeight(); g.setColor(0xffffff); g.fillRect(0, 0, w, h); g.setColor(0x000000); g.drawString("corner", w, h, Graphics.BOTTOM | Graphics.RIGHT); }
}</source>
Draw string to the bottom 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.midlet.MIDlet; public class BottomLeftTextMIDlet extends MIDlet {
public void startApp() { Displayable d = new TextCanvas(); d.addCommand(new Command("Exit", Command.EXIT, 0)); d.setCommandListener(new CommandListener() { public void commandAction(Command c, Displayable s) { notifyDestroyed(); } }); Display.getDisplay(this).setCurrent(d); } public void pauseApp() { } public void destroyApp(boolean unconditional) { }
} class TextCanvas extends Canvas {
public void paint(Graphics g) { int w = getWidth(); int h = getHeight(); g.setColor(0xffffff); g.fillRect(0, 0, w, h); g.setColor(0x000000); g.drawString("corner", 0, h, Graphics.BOTTOM | Graphics.LEFT); }
}</source>
Draw string to the top and 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.midlet.MIDlet; public class TopRightTextMIDlet extends MIDlet {
public void startApp() { Displayable d = new TextCanvas(); d.addCommand(new Command("Exit", Command.EXIT, 0)); d.setCommandListener(new CommandListener() { public void commandAction(Command c, Displayable s) { notifyDestroyed(); } }); Display.getDisplay(this).setCurrent(d); } public void pauseApp() { } public void destroyApp(boolean unconditional) { }
} class TextCanvas extends Canvas {
public void paint(Graphics g) { int w = getWidth(); int h = getHeight(); g.setColor(0xffffff); g.fillRect(0, 0, w, h); g.setColor(0x000000); g.drawString("corner", w, 0, Graphics.TOP | Graphics.RIGHT); }
}</source>
Draw string with font setting
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Font; import javax.microedition.lcdui.Graphics; import javax.microedition.midlet.MIDlet; public class StringFontSettingGraphicsMIDlet extends MIDlet {
private Display display; protected void startApp() { Canvas canvas = new LineCanvas(); display = Display.getDisplay(this); display.setCurrent(canvas); } protected void pauseApp() { } protected void destroyApp(boolean unconditional) { }
} class LineCanvas extends Canvas {
public void paint(Graphics g) { int width = getWidth(); int height = getHeight(); g.setColor(0); g.setStrokeStyle(Graphics.SOLID); Font font = g.getFont(); g.drawString("Below top left", 0, font.getHeight(), Graphics.TOP | Graphics.LEFT); }
}</source>