说明图形应用程序 : 二维图形 « 基于J2ME « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » 基于J2ME » 二维图形屏幕截图 
说明图形应用程序
说明图形应用程序


/*
J2ME in a Nutshell
By Kim Topley
ISBN: 0-596-00253-X

*/
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 drawing
class LineCanvas extends Canvas {
    public void paint(Graphics g) {
        int width = getWidth();
        int height = getHeight();

        // Fill the background using black
        g.setColor(0);
        g.fillRect(00, 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(00, width - 1, height - 1);
    }    
}

// A canvas that illustrates rectangles
class RectanglesCanvas extends Canvas {
    public void paint(Graphics g) {
        int width = getWidth();
        int height = getHeight();

        // Create a white background
        g.setColor(0xffffff);
        g.fillRect(00, width, height);
        
        // Draw a solid rectangle
        g.setColor(0);
        g.drawRect(width/40, width/2, height/4);
                
        // Draw a dotted rectangle inside
        // the solid rectangle.
        g.setStrokeStyle(Graphics.DOTTED);
        g.drawRect(width/44, width/8, height/8);
        
        // Draw a rounded rectangle
        g.setStrokeStyle(Graphics.SOLID);
        g.drawRoundRect(width/4, height/2, width/2, height/4168);
    }
}

// A canvas that illustrates filled rectangles
class RectangleFillsCanvas extends Canvas {
    public void paint(Graphics g) {
        int width = getWidth();
        int height = getHeight();

        // Create a black background
        g.setColor(0);
        g.fillRect(00, 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 arcs
class ArcsCanvas extends Canvas {
    public void paint(Graphics g) {
        int width = getWidth();
        int height = getHeight();

        // Create a black background
        g.setColor(0);
        g.fillRect(00, 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(00, width/2, height/2090);
        g.setStrokeStyle(Graphics.DOTTED);
        g.setColor(0xffff00);
        g.drawRect(00, 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/20, width/2, height/20, -90);
        g.setStrokeStyle(Graphics.DOTTED);
        g.setColor(0xffff00);
        g.drawRect(width/20, 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 arcs
class FilledArcsCanvas extends Canvas {
    public void paint(Graphics g) {
        int width = getWidth();
        int height = getHeight();

        // Create a black background
        g.setColor(0);
        g.fillRect(00, 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(00, width/2, height/2090);
        g.setStrokeStyle(Graphics.DOTTED);
        g.setColor(0xffff00);
        g.drawRect(00, 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/20, width/2, height/20, -90);
        g.setStrokeStyle(Graphics.DOTTED);
        g.setColor(0xffff00);
        g.drawRect(width/20, 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 rendering
class TextCanvas extends Canvas {
    public void paint(Graphics g) {
        int width = getWidth();
        int height = getHeight();

        // Create a black background
        g.setColor(0);
        g.fillRect(00, width, height);
        
        // Top-left of canvas
        g.setColor(0xffffff);
        g.drawString("Top left"00, 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);
    }
}        
           
       
Related examples in the same category
1. 简单的程序演示简单的程序演示
2. 钢琴程序钢琴程序
3. 步行者步行者
4. 指针为例指针为例
5. 文本范例
6. 简单的画布简单的画布
7. 翻译坐标翻译坐标
8. 关键画布
9. 方块文字画布方块文字画布
10. Offscreen程序Offscreen程序
11. Quatsch程序Quatsch程序
12. 扫描游戏扫描游戏
13. 扫描扫描
14. 文字程序文字程序
15. 翻译坐标系统翻译坐标系统
16. 查看各种定位点查看各种定位点
17. 可变图像绘制的油画
18. 画布键盘事件和命令画布键盘事件和命令
19. 不可改变的图像绘制的油画不可改变的图像绘制的油画
20. 使用鼠标事件,应用到画布使用鼠标事件,应用到画布
21. A quick sample of graphics, commands, and event handling.A quick sample of graphics,  commands, and event handling.
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.