使用J2ME的MVC2开源框架KBOX

来源:未知 责任编辑:责任编辑 发表时间:2013-12-01 14:15 点击:

kbox 是一个MVC2模型的J2ME开源框架,用于快速开发可扩展的J2ME MIDP应用程序。 
其结构如图: 
 



所有的可视组件都位于需要经由MIDlet来显示,而MIDlet上的所有事件,包括键盘事件,按钮事件提交到ActionController 上, ActionController跟据配置文件,将事件转发给相应的Action,Action将处理结果得到的可视组件(Displayable)通过 ActionForward返回MIDlet显示。 

KBOX的使用非常简单, 以一个HELLO WORLD 为例: 
创建一个MIDLET: 

public class TestMIDlet extends MIDlet{ 
… 

protected void startApp() throws MIDletStateChangeException { 
ActionController controller = ActionController.getInstance(true); 
controller.registerViewer(this); //Register the MIDlet 
MyKGameCanvas mgc = new MyKGameCanvas("MYGC"); //Create a GameCanvas 
KCommand kc = new KCommand("TEST BUTTON", Command.HELP,1,"MYCMD",null); 
mgc.addCommand(kc); 
mgc.setCommandListener(controller); 
Display.getDisplay(this).setCurrent(mgc); 

} … 


创建一个Canvas: 

public class MyKGameCanvas extends KGameCanvas{ 
public MyKGameCanvas(String uniqueID) { 
super(uniqueID); 

public void showString(String string){ 
Graphics g = this.getGraphics(); 
g.setColor(0xFFFFFFFF); 
g.fillRect(0, 0, this.getWidth(), this.getHeight()); 
g.setColor(0xFF000000); 
g.drawString(string, 0, 0, Graphics.TOP|Graphics.LEFT); 
this.flushGraphics(); 


创建相应的Action: 
public class TestAction implements Action{ 
public void excute(KCommand cmd, Item item, Displayable dis, ActionForward forward,Hashtable parameters) { 
MyKGameCanvas mkc = ((MyKGameCanvas)dis); 
mkc.showString("hello world! From "+mkc.getUniqueID()+"."+cmd.getUniqueID()); 


将按钮事件注册给Action: 
DEBUG=true //open the debug model of KBOX 
CMD.MYCMD.ACTION=action.TestAction 
注意这里的MyKGameCanvas 继承的KGameCanvas,而不是GameCanvas。KBOX的KGameCanvas类继承自GameCanvas,当并没有使用 GameCanvas那种使用线程监听状态的模型,而是重写了keypressed等方法来处理键盘事件。另外,KGameCanvas的重写的按钮事件 的处理已经实现了重复按键情况,而且可以指定重复按键的灵敏度,这点是非常好用的:) 

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Java编程语言的八大优点
  • JVM对象生命周期详细介绍
  • Java平台上的CRM系统
  • Java 算数测试小程序
  • Command(命令模式)
  • Java环境 使用Resin在NT环境下配置JSP环境
  • Java 一个简单的画图程序
  • Java 日历的小程序
  • Java 统计代码的小工具
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1