⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graphicsmidlet.java

📁 J2ME in a Nutshell随书源码 图书语言: 简体中文 图书类型: 程序设计 >> 手机开发下载 授权方式: 免费手机开发图书 图书
💻 JAVA
字号:
package ora.ch5;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.List;import javax.microedition.midlet.MIDlet;public class GraphicsMIDlet extends MIDlet implements CommandListener {    // The MIDlet's Display object    private Display display;            // 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 = {        "Lines", "Rectangles", "RectangleFills",        "Arcs", "FilledArcs", "Text"    };    protected void startApp() {        if (!started) {            started = true;            display = Display.getDisplay(this);                        // Create the common commands            createCommands();                        // Create the canvases            createCanvases();                        // Create the list of examples            createList();                        // Start with the List            display.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();            display.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            display.setCurrent(examplesList);        }    }        private void createCommands() {        exitCommand = new Command("Exit", Command.EXIT, 0);        backCommand = new Command("Back", Command.BACK, 1);    }        private void createList() {        examplesList = new List("Select Example", List.IMPLICIT);        for (int i = 0; i < examples.length; i++) {            examplesList.append(examples[i], null);        }         examplesList.setCommandListener(this);    }        private void createCanvases() {        canvases = new Canvas[examples.length];        canvases[0] = createLinesCanvas();        canvases[1] = createRectanglesCanvas();        canvases[2] = createRectangleFillsCanvas();        canvases[3] = createArcsCanvas();        canvases[4] = createFilledArcsCanvas();        canvases[5] = createTextCanvas();            }    private void addCommands(Displayable d) {        d.addCommand(exitCommand);        d.addCommand(backCommand);        d.setCommandListener(this);    }        // Create the Canvas for the line drawing example    private Canvas createLinesCanvas() {        Canvas canvas = new LineCanvas();                addCommands(canvas);        return canvas;    }                // Create the Canvas for the rectangles example    private Canvas createRectanglesCanvas() {        Canvas canvas = new RectanglesCanvas();                addCommands(canvas);        return canvas;    }            // Create the Canvas for the filled rectangles example    private Canvas createRectangleFillsCanvas() {        Canvas canvas = new RectangleFillsCanvas();                addCommands(canvas);        return canvas;    }            // Create the Canvas for the arcs example    private Canvas createArcsCanvas() {        Canvas canvas = new ArcsCanvas();                addCommands(canvas);        return canvas;    }               // Create the Canvas for the filled arcs example    private Canvas createFilledArcsCanvas() {        Canvas canvas = new FilledArcsCanvas();                addCommands(canvas);        return canvas;    }                       // Create the Canvas for the text example    private Canvas createTextCanvas() {        Canvas canvas = new TextCanvas();                addCommands(canvas);        return canvas;    }}// A canvas that illustrates line drawingclass LineCanvas extends Canvas {    public void paint(Graphics g) {        int width = getWidth();        int height = getHeight();        // Fill the background using black        g.setColor(0);        g.fillRect(0, 0, width, height);        // White horizontal line        g.setColor(0xFFFFFF);        g.drawLine(0, height/2, width - 1, height/2);        // Yellow dotted horizontal line        g.setStrokeStyle(Graphics.DOTTED);        g.setColor(0xFFFF00);        g.drawLine(0, height/4, width - 1, height/4);        // Solid diagonal line in brightest gray        g.setGrayScale(255);        g.setStrokeStyle(Graphics.SOLID);        g.drawLine(0, 0, width - 1, height - 1);    }    }// A canvas that illustrates rectanglesclass RectanglesCanvas extends Canvas {    public void paint(Graphics g) {        int width = getWidth();        int height = getHeight();        // Create a white background        g.setColor(0xffffff);        g.fillRect(0, 0, width, height);                // Draw a solid rectangle        g.setColor(0);        g.drawRect(width/4, 0, width/2, height/4);                        // Draw a dotted rectangle inside        // the solid rectangle.        g.setStrokeStyle(Graphics.DOTTED);        g.drawRect(width/4 + 4, 4, width/2 - 8, height/4 - 8);                // Draw a rounded rectangle        g.setStrokeStyle(Graphics.SOLID);        g.drawRoundRect(width/4, height/2, width/2, height/4, 16, 8);    }}// A canvas that illustrates filled rectanglesclass RectangleFillsCanvas extends Canvas {    public void paint(Graphics g) {        int width = getWidth();        int height = getHeight();        // Create a black background        g.setColor(0);        g.fillRect(0, 0, width, height);        // Draw a filled rectangle with        // a dotted rectangle around it        g.setStrokeStyle(Graphics.DOTTED);        g.setColor(0x00ff00);        g.fillRect(width/4, height/4, width/2, height/2);        g.setColor(0xffff00);        g.drawRect(width/4, height/4, width/2, height/2);    }}// A canvas that illustrates arcsclass ArcsCanvas extends Canvas {    public void paint(Graphics g) {        int width = getWidth();        int height = getHeight();        // Create a black background        g.setColor(0);        g.fillRect(0, 0, width, height);        // A quarter circle, clockwise 90 degrees        // from the 3 o'clock position. Show the        // bounding rectangle as well.        g.setColor(0xffffff);        g.drawArc(0, 0, width/2, height/2, 0, 90);        g.setStrokeStyle(Graphics.DOTTED);        g.setColor(0xffff00);        g.drawRect(0, 0, width/2, height/2);        // A quarter circle, anticlockwise 90 degrees        // from the 3 o'clock position.         g.setStrokeStyle(Graphics.SOLID);        g.setColor(0xffffff);        g.drawArc(width/2, 0, width/2, height/2, 0, -90);        g.setStrokeStyle(Graphics.DOTTED);        g.setColor(0xffff00);        g.drawRect(width/2, 0, width/2, height/2);               // An elliptical arc from the six o'clock        // position, counterclockwise 180 degrees        g.setStrokeStyle(Graphics.SOLID);        g.setColor(0xffffff);        g.drawArc(0, height/2, width, height/2, -90, -180);        g.setStrokeStyle(Graphics.DOTTED);        g.setColor(0xffff00);        g.drawRect(0, height/2, width, height/2);            }}// A canvas that illustrates filled arcsclass FilledArcsCanvas extends Canvas {    public void paint(Graphics g) {        int width = getWidth();        int height = getHeight();        // Create a black background        g.setColor(0);        g.fillRect(0, 0, width, height);        // A quarter circle, clockwise 90 degrees        // from the 3 o'clock position. Show the        // bounding rectangle as well.        g.setColor(0xffffff);        g.fillArc(0, 0, width/2, height/2, 0, 90);        g.setStrokeStyle(Graphics.DOTTED);        g.setColor(0xffff00);        g.drawRect(0, 0, width/2, height/2);        // A quarter circle, anticlockwise 90 degrees        // from the 3 o'clock position.         g.setStrokeStyle(Graphics.SOLID);        g.setColor(0xffffff);        g.fillArc(width/2, 0, width/2, height/2, 0, -90);        g.setStrokeStyle(Graphics.DOTTED);        g.setColor(0xffff00);        g.drawRect(width/2, 0, width/2, height/2);               // An elliptical arc from the six o'clock        // position, counterclockwise 180 degrees        g.setStrokeStyle(Graphics.SOLID);        g.setColor(0xffffff);        g.fillArc(0, height/2, width, height/2, -90, -180);        g.setStrokeStyle(Graphics.DOTTED);        g.setColor(0xffff00);        g.drawRect(0, height/2, width, height/2);            }}// A canvas that illustrates text renderingclass TextCanvas extends Canvas {    public void paint(Graphics g) {        int width = getWidth();        int height = getHeight();        // Create a black background        g.setColor(0);        g.fillRect(0, 0, width, height);                // Top-left of canvas        g.setColor(0xffffff);        g.drawString("Top left", 0, 0, Graphics.TOP | Graphics.LEFT);                // Draw another string one line below        Font font = g.getFont();        g.drawString("Below top left", 0, font.getHeight(), Graphics.TOP | Graphics.LEFT);                // Bottom-right of canvas        g.drawString("Bottom right", width, height, Graphics.BOTTOM | Graphics.RIGHT);                // Mixed fonts and colors        String str = "Multi-font ";                font = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_UNDERLINED, Font.SIZE_LARGE);        g.setFont(font);        g.drawString(str, 0, height/2, Graphics.LEFT | Graphics.BASELINE);                int x = font.stringWidth(str);        g.setColor(0x00ff00);        g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD | Font.STYLE_ITALIC, Font.SIZE_MEDIUM));        g.drawString("and multi-color", x, height/2, Graphics.LEFT | Graphics.BASELINE);    }}        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -