Java/J2ME
Версия от 18:01, 31 мая 2010; (обсуждение)
- 2D
- Alert
- Animation
- Application
- Audio Media
- Basics
- CheckBox
- ChoiceGroup
- Clip
- CustomItem
- Database Persistence
- Date
- Environment
- Event Command
- Exception
- Form
- Game
- Gauge
- Image
- Key Event
- List
- Networks
- RadioButton
- Security
- Shape
- Sort Search
- StringItem
- System Properties
- TextBox TextField
- Thread
- Ticker
- Timer
- XML
Font Canvas
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
public class FontCanvas extends Canvas {
private Font systemFont, monospaceFont, proportionalFont;
public FontCanvas() {
this(Font.STYLE_PLAIN);
}
public FontCanvas(int style) {
setStyle(style);
}
public void setStyle(int style) {
systemFont = Font.getFont(Font.FACE_SYSTEM, style, Font.SIZE_MEDIUM);
monospaceFont = Font.getFont(Font.FACE_MONOSPACE, style, Font.SIZE_MEDIUM);
proportionalFont = Font.getFont(Font.FACE_PROPORTIONAL, style, Font.SIZE_MEDIUM);
}
public void paint(Graphics g) {
int w = getWidth();
int h = getHeight();
// Clear the Canvas.
g.setGrayScale(255);
g.fillRect(0, 0, w - 1, h - 1);
g.setGrayScale(0);
g.drawRect(0, 0, w - 1, h - 1);
int x = w / 2;
int y = 20;
y += showFont(g, "System", x, y, systemFont);
y += showFont(g, "Monospace", x, y, monospaceFont);
y += showFont(g, "Proportional", x, y, proportionalFont);
}
private int showFont(Graphics g, String s, int x, int y, Font f) {
g.setFont(f);
g.drawString(s, x, y, Graphics.TOP | Graphics.HCENTER);
return f.getHeight();
}
}
Font Canvas MIDlet
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class FontCanvasMIDlet extends MIDlet {
public FontCanvasMIDlet() { // constructor
}
public void startApp() {
Canvas canvas = new FontCanvas();
Display display = Display.getDisplay(this);
display.setCurrent(canvas);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
class FontCanvas extends Canvas {
public void paint(Graphics g) {
g.setColor(0xffffff);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0x000000);
g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_LARGE));
g.drawString("System Font", 0, 0, g.LEFT | g.TOP);
g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM));
g.drawString("Medium Size", 0, 15, g.LEFT | g.TOP);
g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_MEDIUM));
g.drawString("Bold Style", 0, 30, g.LEFT | g.TOP);
g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_ITALIC, Font.SIZE_MEDIUM));
g.drawString("Italic Style", 0, 45, g.LEFT | g.TOP);
g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_UNDERLINED, Font.SIZE_MEDIUM));
g.drawString("Underlined Style", 0, 60, g.LEFT | g.TOP);
}
}
Font MIDlet
/*
Wireless Java 2nd edition
Jonathan Knudsen
Publisher: Apress
ISBN: 1590590775
*/
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class FontMIDlet extends MIDlet implements CommandListener {
private FontCanvas mFontCanvas;
private Command mBoldCommand, mItalicCommand, mUnderlineCommand;
public FontMIDlet() {
mFontCanvas = new FontCanvas();
mBoldCommand = new Command("Bold", Command.SCREEN, 0);
mItalicCommand = new Command("Italic", Command.SCREEN, 0);
mUnderlineCommand = new Command("Underline", Command.SCREEN, 0);
Command exitCommand = new Command("Exit", Command.EXIT, 0);
mFontCanvas.addCommand(mBoldCommand);
mFontCanvas.addCommand(mItalicCommand);
mFontCanvas.addCommand(mUnderlineCommand);
mFontCanvas.addCommand(exitCommand);
mFontCanvas.setCommandListener(this);
}
public void startApp() {
Display.getDisplay(this).setCurrent(mFontCanvas);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
public void commandAction(Command c, Displayable s) {
if (c.getCommandType() == Command.EXIT) {
notifyDestroyed();
return;
}
boolean isBold = mFontCanvas.isBold() ^ (c == mBoldCommand);
boolean isItalic = mFontCanvas.isItalic() ^ (c == mItalicCommand);
boolean isUnderline = mFontCanvas.isUnderline() ^
(c == mUnderlineCommand);
int style =
(isBold ? Font.STYLE_BOLD : 0) |
(isItalic ? Font.STYLE_ITALIC : 0) |
(isUnderline ? Font.STYLE_UNDERLINED : 0);
mFontCanvas.setStyle(style);
mFontCanvas.repaint();
}
}