翻译坐标系统 : 二维图形 « 基于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 » 二维图形屏幕截图 
翻译坐标系统
翻译坐标系统


/*--------------------------------------------------
* Translate.java
*
* Translate coordinate system
*
* Example from the book:     Core J2ME Technology
* Copyright John W. Muchow   http://www.CoreJ2ME.com
* You may use/modify for any non-commercial purpose
*-------------------------------------------------*/  
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class Translate extends MIDlet
{
  private Display  display;     // The display
  private TranslateCanvas canvas;   // Canvas 
 
  public Translate()
  {
    display = Display.getDisplay(this);
    canvas  = new TranslateCanvas(this);
  }
 
  protected void startApp()
  {
    display.setCurrentcanvas );
  }
 
  protected void pauseApp()
  { }

  protected void destroyAppboolean unconditional )
  { }
 
  public void exitMIDlet()
  {
    destroyApp(true);
    notifyDestroyed();
  }
}

/*--------------------------------------------------
* Class Translate
*
* Draw image using translated coordinates
*-------------------------------------------------*/
class TranslateCanvas extends Canvas implements CommandListener
{
  private Command cmExit;  // Exit midlet
  private Translate midlet;
  private Image im = null;
  private int translatex = 0, translatey = 0;
 
  public TranslateCanvas(Translate midlet)
  {
    this.midlet = midlet;
    
    // Create exit command & listen for events
    cmExit = new Command("Exit", Command.EXIT, 1);
    addCommand(cmExit);
    setCommandListener(this);

    try
    {
      // Create immutable image
      im = Image.createImage("/bolt.png");
    }
    catch (java.io.IOException e)
    {
      System.err.println("Unable to locate or read .png file");
    }    
  

  protected void paint(Graphics g)
  {
    if (im != null)
    {
      // Clear the background
      g.setColor(255255255);
      g.fillRect(00, getWidth(), getHeight());
      
      // Translate coordinates
      g.translate(translatex, translatey);      
    
      // Always draw at 0,0
      g.drawImage(im, 00, Graphics.LEFT | Graphics.TOP);
    }
  }

  public void commandAction(Command c, Displayable d)
  {
    if (c == cmExit)
      midlet.exitMIDlet();
  }
  
  protected void keyPressed(int keyCode)
  {
    switch (getGameAction(keyCode))
    {
      case UP: 
      
        // If scrolling off the top, roll around to bottom
        if (translatey - im.getHeight() 0)
          translatey = getHeight() - im.getHeight();
        else
          translatey -= im.getHeight();          
        break;
      
      case DOWN:

        // If scrolling off the bottom, roll around to top
        if ((translatey + im.getHeight() + im.getHeight()) > getHeight())
          translatey = 0;
        else
          translatey += im.getHeight();          
        break;
        
      case LEFT:
      
        // If scrolling off the left, bring around to right
        if (translatex - im.getWidth() 0)
          translatex = getWidth() - im.getWidth();
        else
          translatex -= im.getWidth();          
        break;

      case RIGHT:
      
        // If scrolling off the right, bring around to left
        if ((translatex + im.getWidth() + translatex> getWidth())
          translatex = 0;
        else
          translatex += im.getWidth();          
        break;
    }        
    repaint();
  }
}

           
       
Related examples in the same category
1. 简单的程序演示简单的程序演示
2. 钢琴程序钢琴程序
3. 步行者步行者
4. 指针为例指针为例
5. 文本范例
6. 简单的画布简单的画布
7. 说明图形应用程序说明图形应用程序
8. 翻译坐标翻译坐标
9. 关键画布
10. 方块文字画布方块文字画布
11. Offscreen程序Offscreen程序
12. Quatsch程序Quatsch程序
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.