HardBirch

lcdui与lwuit的融合

时间:08-12-14 栏目:安卓入门与提高 作者:张飞不张,文采横飞 评论:2 点击: 1,977 次


lcdui是J2ME默认的UI,lwuit是J2ME新推出的新型UI。
lwuit比lcdui优越的地方在于lwuit够炫,绝对地炫,呵呵呵,但是,有些第三方J2me控件,也一样不错,但是是基于lcdui的低级绘图,那么,有没有办法把这些lcdui的第三方控件转换到lwuit上运行呢?
本文就是回答这个问题,
本文是后面关于J2ME的chart控件使用的文章的基础
在lwuit工程里,实现以下代码,代码好简单,一看就明白了:















 

声明: 本文由( 张飞不张,文采横飞 )原创编译,转载请保留链接: lcdui与lwuit的融合

lcdui与lwuit的融合:目前有2 条留言

  1. 板凳
    btbird2008:

    张你好,我看了这篇文章,我现在在想如何在lwuit中使用lcdui的canvas,我也去java.net的论坛上看过了,其中有一篇是讲到这个:
    public class MyCanvas extends Canvas{

    private int width, height;

    public void setWidth(int width) {
    this.width = width;
    }

    public void setHeight(int height) {
    this.height = height;
    }

    public void paint(Graphics g) {
    g.drawLine(0, 0, width, height);

    }

    public void keyPressed(int key) {
    System.out.println("keyPressed " key);
    }

    protected void keyReleased(int key) {
    System.out.println("keyReleased " key);
    }
    }
    package com.sun.lwuit;

    public class CanvasWrapper extends Component {

    private MyCanvas inner;

    public CanvasWrapper(MyCanvas inner) {
    this.inner = inner;
    getStyle().setBgTransparency(0);

    }

    public void paint(Graphics g) {
    javax.microedition.lcdui.Graphics midpGraphics = g.getGraphics();
    midpGraphics.setClip(g.getTranslateX() g.getClipX(),
    g.getTranslateY() g.getClipY(), g.getClipWidth(), g.getClipHeight());

    midpGraphics.translate(getX() g.getTranslateX(), getY()
    g.getTranslateY());

    inner.paint(midpGraphics);

    midpGraphics.translate(-getX() – g.getTranslateX(), -getY() –
    g.getTranslateY());

    }

    public void setWidth(int width) {
    super.setWidth(width);
    inner.setWidth(width);
    }

    public void setHeight(int height) {
    super.setHeight(height);
    inner.setHeight(height);
    }

    public void keyPressed(int keyCode) {
    if(Display.getInstance().getGameAction(keyCode) ==
    Display.GAME_FIRE){
    setHandlesInput(!handlesInput());
    }
    inner.keyPressed(keyCode);
    }

    public void keyReleased(int

    2009-09-21 15:24 [回复]
  2. 沙发
    btbird2008:

    好像代码太多了乱。汗, javax.microedition.lcdui.Graphics midpGraphics = g.getGraphics(); 就是这句代码。
    javax.microedition.lcdui.Graphics midpGraphics = g.getGraphics();
    注意:某些输入文件使用或覆盖了已过时的 API。
    注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。
    不知道如何解决,而java.net论坛上的人却说it works,很是费解,谢谢

    2009-09-21 15:29 [回复]

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐