A quick sample of graphics, commands, and event handling. : Event Command « J2ME « Java

Java
1. 2D Graphics GUI
2. 3D
3. Advanced Graphics
4. Ant
5. Apache Common
6. Chart
7. Class
8. Collections Data Structure
9. Data Type
10. Database SQL JDBC
11. Design Pattern
12. Development Class
13. EJB3
14. Email
15. Event
16. File Input Output
17. Game
18. Generics
19. GWT
20. Hibernate
21. I18N
22. J2EE
23. J2ME
24. JDK 6
25. JNDI LDAP
26. JPA
27. JSP
28. JSTL
29. Language Basics
30. Network Protocol
31. PDF RTF
32. Reflection
33. Regular Expressions
34. Scripting
35. Security
36. Servlets
37. Spring
38. Swing Components
39. Swing JFC
40. SWT JFace Eclipse
41. Threads
42. Tiny Application
43. Velocity
44. Web Services SOA
45. XML
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java » J2ME » Event CommandScreenshots 
A quick sample of graphics, commands, and event handling.
A quick sample of graphics,  commands, and event handling.

/*
 * @(#)Sample.java  1.9 01/06/08
 * Copyright (c) 1999-2001 Sun Microsystems, Inc. All Rights Reserved.
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


/*
 * A quick sample of graphics,  commands, and event handling.
 */
public class SampleCanvasMIDlet extends MIDlet implements CommandListener {
    Display display;
    Command exitCommand;
    Command backCommand;
    Command okCommand;
    SampleCanvas sample; // Instance of sample canvas

    List itemMenu;
    List exclusiveList;
    List multipleList;
    TextBox textbox;
    Ticker ticker;
    Alert alert;
    Form form;
    StringItem stringItem;
    ImageItem imageItem;
    Image image;
    TextField textItem;
    ChoiceGroup choiceItem;
    DateField dateItem;
    Gauge gaugeItem;


    public SampleCanvasMIDlet() {
        display = Display.getDisplay(this);
        exitCommand = new Command("Exit", Command.EXIT, 1);
        backCommand = new Command("Back", Command.BACK, 2);
        okCommand = new Command("OK", Command.OK, 3);

        ticker = new Ticker("Select an item to display");
        itemMenu = new List(null, Choice.IMPLICIT);
        itemMenu.append("Canvas"null);
        itemMenu.append("Form"null);
        itemMenu.append("Alert"null);
        itemMenu.append("TextBox"null);
        itemMenu.append("Exclusive List"null);
        itemMenu.append("Multiple Choice"null);

        itemMenu.setCommandListener(this);
        itemMenu.addCommand(exitCommand);
        itemMenu.setTicker(ticker);
        display.setCurrent(itemMenu);
    }

    public void startApp () {
    }

    public void destroyApp (boolean unconditional) {
    }

    public void pauseApp () {
    }

    public void commandAction(Command c, Displayable s) {
        if (c == backCommand) {
            display.setCurrent(itemMenu);
        else if (s == itemMenu) {
            if (c == List.SELECT_COMMAND) {
                // Handle the item sected to be displayed
                int i = itemMenu.getSelectedIndex();
                switch (i) {
                    case 0// Show Sample canvas
                        display.setCurrent(getCanvas());
                        break;
                    case 1// Show the form
                        display.setCurrent(getForm());
                        break;
                    case 2// Show an alert
                        display.setCurrent(getAlert("Warning"
                                "This window will dismiss in two seconds."));
                        break;
                    case 3// Show TextBox
                        display.setCurrent(getTextBox());
                        break;
                    case 4// Show Exclusive list
                        display.setCurrent(getExclusiveList());
                        break;
                    case 5// Show Multiple List
                        display.setCurrent(getMultipleList());
                        break;
                }
            else if (c == exitCommand) {
                notifyDestroyed();
            }
        else if (s == exclusiveList) {
            int i = exclusiveList.getSelectedIndex();
            String value = exclusiveList.getString(i);
            alert = getAlert("Border selected:", value);
            display.setCurrent(alert, itemMenu);
        else if (s == multipleList) {
            StringBuffer b = new StringBuffer();
            for (int i = 0; i <= 2; i++) {
                if (multipleList.isSelected(i)) {
                    b.append(multipleList.getString(i));
                    b.append("\n");
                }
            }
            alert = getAlert("Colors selected:", b.toString());
            display.setCurrent(alert, itemMenu);
        else if (s == textbox) {
            String value = textbox.getString();
            alert = getAlert("Text Entered:", value);
            display.setCurrent(alert, itemMenu);
        else if (s == form) {
            alert = getAlert("Image options  saved""");
            display.setCurrent(alert, itemMenu);
        }
    }

    SampleCanvas getCanvas() {
        if (sample == null) {
            sample = new SampleCanvas();
            sample.addCommand(backCommand);
            sample.setCommandListener(this);
        }
        return sample;
    }

    List getExclusiveList() {
        if (exclusiveList == null) {
            exclusiveList = new List("Border Style", Choice.EXCLUSIVE);
            exclusiveList.append("None"null);
            exclusiveList.append("Plain"null);
            exclusiveList.append("Fancy"null);
            exclusiveList.addCommand(backCommand);
            exclusiveList.addCommand(okCommand);
            exclusiveList.setCommandListener(this);
        }
        return exclusiveList;
    }

    List getMultipleList() {
        if (multipleList == null) {
            multipleList = new List("Colors to mix", Choice.MULTIPLE);
            multipleList.append("Red"null);
            multipleList.append("Green"null);
            multipleList.append("Blue"null);
            multipleList.addCommand(backCommand);
            multipleList.addCommand(okCommand);
            multipleList.setCommandListener(this);
        }
        return multipleList;
    }

    TextBox getTextBox() {
        if (textbox == null) {
            textbox = new TextBox("Enter a phone number",""40,
          TextField.PHONENUMBER);
            textbox.addCommand(backCommand);
            textbox.addCommand(okCommand);
            textbox.setCommandListener(this);
        }
        return textbox;
    }
    
    Alert getAlert(String title, String contents) {
        if (alert == null) {
            alert = new Alert(title);
            alert.setType(AlertType.WARNING);
            alert.setTimeout(2000);
      alert.setString(contents)
        else {
            alert.setTitle(title);
            alert.setString(contents);
        }
        return alert;
    }
    
    Form getForm() {
         if (form == null) {
            form new Form("Options");

            try {
                image = Image.createImage("/images/PhotoAlbum.png");
                imageItem = new ImageItem("Preview:", image, 
                            ImageItem.LAYOUT_NEWLINE_BEFORE, "Mountain");
                form.append(imageItem);
            catch (java.io.IOException ex) {
            }

            textItem = new TextField("Title:""Mountain"32,
             TextField.ANY);
            form.append(textItem);
            
            dateItem = new DateField("Date:", DateField.DATE);
            dateItem.setDate(new java.util.Date());
            form.append(dateItem);

            choiceItem = new ChoiceGroup("Size:", Choice.EXCLUSIVE);
            choiceItem.append("Small"null);
            choiceItem.append("Large"null);
            form.append(choiceItem);
            
            gaugeItem = new Gauge("Speed:", true, 105);
            form.append(gaugeItem);

            form.addCommand(backCommand);
            form.addCommand(okCommand);
            form.setCommandListener(this);
        }
        return form;
    }
}


class SampleCanvas extends Canvas {
    int     x, y;           // Location of cross hairs
    String  event = "";     // Last key event type
    int     keyCode;        // Last keyCode pressed
    Font    font;           // Font used for drawing text
    int     fh;             // height of the font
    int     w, h;           // width and height of the canvas
    int     titleHeight;    // Height of the title
    int     pieSize;        // Size of the Pie chart used for width and height
    int     barSize;        // Size of the Bar chart used for width and height
    int     eventHeight;    // Size of the event region
    int     pad;            // Padding used between items

    SampleCanvas() {
        w = getWidth();
        h = getHeight();
        font = Font.getFont(Font.FACE_SYSTEM,
          Font.STYLE_PLAIN, Font.SIZE_SMALL);
        fh = font.getHeight();

        /* Compute the sizes of the bar and pie charts
         * It should use all the space except for the title
   * and event regions.
         * Don't let the charts get too small
         */
        pad = 2;
        titleHeight = fh + pad * 2;
        eventHeight = fh * 3;
        barSize = h - (titleHeight + pad(eventHeight + pad);
        if (barSize < 20)               // Don't let them get too small
            barSize = 20;
        if (barSize > (w - pad2)    // Shrink to 1/2 width
            barSize = (w - pad2;
        pieSize = barSize;
    }

    protected void keyPressed(int key) {
        keyCode = key;
        event = "Pressed";
        handleActions(key);
        repaint();
    }

    protected void keyRepeated(int key) {
        keyCode = key;
        event = "Repeated";
        handleActions(key);
        repaint();
    }

    protected void keyReleased(int key) {
        keyCode = key;
        event = "Released";
        repaint();
    }

    protected void pointerPressed(int x, int y) {
        this.x = x;
        this.y = y;
        keyCode = 0;
        event = "Pressed";
        repaint();
    }
    protected void pointerReleased(int x, int y) {
        this.x = x;
        this.y = y;
        keyCode = 0;
        event = "Released";
        repaint();
    }

    protected void pointerDragged(int x, int y) {
        this.x = x;
        this.y = y;
        keyCode = 0;
        event = "Dragged";
    }

    void handleActions(int keyCode) {
        int action = getGameAction(keyCode);
        switch (action) {
            case LEFT:
            x -= 1;
            break;
            case RIGHT:
            x += 1;
            break;
            case UP:
            y -= 1;
            break;
            case DOWN:
            y += 1;
            break;
        }
    }

    protected void paint(Graphics g) {

        g.setFont(font);
        g.setGrayScale(255);
        g.fillRect(00, w, h);

        x = (x < 0? w - : x;
        y = (y < 0? h - : y;
        x = x % w;
        y = y % h;

        // Draw Fill and outline for background of title Text
        int swidth = pad * + font.stringWidth("Pie and Bar Samples");
        int title_x = (w - swidth)/2;

        g.setGrayScale(128);
        g.fillRoundRect(title_x, 0, swidth, fh, 55);
        g.setGrayScale(0);
        g.drawRoundRect(title_x, 0, swidth, fh, 55);

        // Sample Text
        g.setColor(000);
        g.drawString("Pie and Bar Samples"
         title_x + pad, pad, Graphics.TOP|Graphics.LEFT);

  // Translate to below title text
        g.translate(0, titleHeight + pad);

        /*
   * Draw pie chart on the left side
   * using the barSize for width and height
   */
        g.setColor(25500);
        g.fillArc(00, pieSize, pieSize, 45270);
        g.setColor(02550);
        g.fillArc(00, pieSize, pieSize, 045);
        g.setColor(00255);
        g.fillArc(00, pieSize, pieSize, 0, -45);
        g.setColor(0);
        g.drawArc(00, pieSize, pieSize, 0360);

        // Draw Bar chart on right side of the display
        // scale the values to the pieSize maximum value
        int yorig = barSize;
        int h1 = barSize / 3, h2 = barSize / 2, h3 = barSize;
        int avg = (h1 + h2 + h33;

        // Move over to draw Bar chart
        g.translate((w + pad20);

        int bw = pieSize / 7;
        if (bw < 2)
             bw = 2;
        g.setColor(25500);
        g.fillRect(bw*1, yorig-h1, bw+1, h1);
        g.setColor(02550);
        g.fillRect(bw*3, yorig-h2, bw+1, h2);
        g.setColor(00255);
        g.fillRect(bw*5, yorig-h3, bw+1, h3);
        g.setColor(0);
        g.drawRect(bw*1, yorig-h1, bw, h1);
        g.drawRect(bw*3, yorig-h2, bw, h2);
        g.drawRect(bw*5, yorig-h3, bw, h3);

        // Draw axis for bar chart.
        g.setGrayScale(0);
        g.drawLine(000, yorig);
        g.drawLine(0, yorig, barSize, yorig);
        g.setStrokeStyle(Graphics.DOTTED);
        g.drawLine(0, yorig - avg, barSize, yorig-avg);
        g.setStrokeStyle(Graphics.SOLID);

  // Restore to left and move down
        g.translate(-(w + pad2, pieSize + pad);

        // Draw the key and pointer status
        g.setColor(128128128);
        int col1 = font.stringWidth("Action:");
        g.drawString("Key: ",      col1,     0,
         Graphics.TOP|Graphics.RIGHT);
        g.drawString(keyString(keyCode), col1, 0,
         Graphics.TOP|Graphics.LEFT);
        g.drawString("Action:",    col1,     fh,
         Graphics.TOP|Graphics.RIGHT);
        g.drawString(actionString(keyCode), col1, fh,
         Graphics.TOP|Graphics.LEFT);
        g.drawString("Event:",     col1,     fh*2,
         Graphics.TOP|Graphics.RIGHT);
        g.drawString(event,        col1,     fh*2,
         Graphics.TOP|Graphics.LEFT);
        int col2 = 80;
        g.drawString("x:",         col2,     0,
         Graphics.TOP|Graphics.RIGHT);
        g.drawString(Integer.toString(x), col2, 0,
         Graphics.TOP|Graphics.LEFT);
        g.drawString("y:",         col2,     fh,
         Graphics.TOP|Graphics.RIGHT);
        g.drawString(Integer.toString(y), col2, fh,
         Graphics.TOP|Graphics.LEFT);

        // Restore the origin and draw the crosshairs on top
        g.translate(-g.getTranslateX(), -g.getTranslateY());

        g.setColor(000);
        g.drawLine(x, y - 5, x, y + 5);
        g.drawLine(x - 5, y, x + 5, y);
    }
 
    String keyString(int keyCode) {
        if (keyCode == 0) {
            return "";
        }
        return Integer.toString(keyCode);
    }

    String actionString(int keyCode) {
        if (keyCode == 0) {
            return "";
        }

  int action = getGameAction(keyCode);
  switch (action) {
  case FIRE:
      return "Fire";
  case LEFT:
      return "Left";
  case RIGHT:
      return "Right";
  case DOWN:
      return "Down";
  case UP:
      return "Up";
  case GAME_A:
      return "Game A";
  case GAME_B:
      return "Game B";
  case GAME_C:
      return "Game C";
  case GAME_D:
      return "Game D";
  case 0:
      return "";
  default:
      return Integer.toString(action);
  }
    }
}

           
       
Related examples in the same category
1. Simple Command DemoSimple Command Demo
2. CommanderCommander
3. Various EventVarious Event
4. Commands, Items, and Event ProcessingCommands, Items, and Event Processing
5. Api concepts Refer to the startApp pauseApp, and destroyAppApi concepts Refer to the startApp pauseApp, and destroyApp
6. An example MIDlet with simple Hello text and an Exit commandAn example MIDlet with simple Hello text and an Exit command
7. Online Help
8. A first MIDlet with simple text and a few commands.A first MIDlet with simple text and a few commands.
9. Many CommandsMany Commands
10. Mapping CommandsMapping Commands
11. Capture Item EventsCapture Item Events
12. Accessing CommandsAccessing Commands
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.