免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1733 | 回复: 1
打印 上一主题 下一主题

一个canvas和textbox转换问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-29 15:54 |只看该作者 |倒序浏览
写了一段程序,但是,总是不能实现想要的效果,请大家指点一下(本人是刚刚开始学习j2me的)
想要实现的效果:
开始是一个图片canvas界面,点击fire健后,跳到textbox输入框,让用户输入自己的信息,之后,取得用户输入返回canvas低级界面,画在需要显示的地方

代码为:
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;

public class main extends MIDlet implements CommandListener{

public Image search_bg = null;
public Image search_content = null;
public Display m_display;
protected TextBox textBox;
Command commit;
boolean show_pic=true;
drawbg m_bg;


public main() {

try
{
search_bg = Image.createImage("/pic/search/search_bg.png");
search_content = Image.createImage("/pic/search/search_banner.png");
}catch(Exception e)
{
//装载图片失败程序需要退出
}
textBox = new TextBox("搜索内容", "nihao",
                53, TextField.ANY);
commit = new Command("提交",Command.SCREEN,1);

m_bg = new drawbg(this);
m_display = Display.getDisplay(this);
        setDisplayable(m_bg);
}

  public void setDisplayable(Displayable displayable)
    {
  m_display.setCurrent(displayable);
    }

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub

}

protected void pauseApp() {
// TODO Auto-generated method stub

}

protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub

}


public void search_interface()
{
// 将这个TextBox在当前屏幕上显示
m_display = Display.getDisplay(this);
textBox.addCommand(commit);
textBox.setCommandListener(this);
setDisplayable(textBox);
}


public void commandAction(Command c, Displayable s) {
TextBox tmp = (TextBox)s ;
System.out.println(tmp.getString()) ;
}
}

第二个类为drawbg :
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.Graphics;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;

public class drawbg extends Canvas  {

main m_pmidlet;
int bg_width = 0;
int bg_hight = 0;


public drawbg(main pMIDlet)
{
m_pmidlet = pMIDlet;
bg_width = m_pmidlet.search_bg.getWidth();
bg_hight = m_pmidlet.search_bg.getHeight();
}
public void paint(Graphics g)
{

g.drawImage(m_pmidlet.search_bg, 0, 0, Graphics.TOP ¦Graphics.LEFT);
g.drawImage(m_pmidlet.search_content, bg_width/10, bg_hight/3, Graphics.TOP ¦Graphics.LEFT);
}

protected void KeyPressed(int key)
    {
        switch(key)
        {
        case -6:
        m_pmidlet.search_interface();
            break;
        default:
            //back();
            break;
        }
    }



}


请大家帮我看看吧
在线等

论坛徽章:
0
2 [报告]
发表于 2008-05-29 16:54 |只看该作者
解决了,就是Keypress改成小写
太粗心了:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP