通过SmartInvoke用java与flex轻松构建cs程序

smartinvoke 2009-11-20 02:33:28
大家都知道用java写CS程序非常麻烦,开发效率远不如winform,但是
用flex来做UI不仅好看而且开发效率很高,所以幻想着能用flex来做
java桌面程序。
经过大半年的摸索和测试,终于写出了SmartInvoke,它可以方便的实现
java与flex的互相调用,就像调用本地代码一样方便快捷。

SmartInvoke (for java and flex)版构造于swt库之上。

下面是一些简单的代码片段:

java调用flex:
//添加flash容器到shell窗体
final FlashContainer container=new FlashContainer(shell);
//flash容器加载完毕会自动调用ILoadCompleteListener接口的run方法
container.completeListener=new ILoadCompleteListener(){

public void run() {
//传入一flash容器创建remoteObject代理对象
RemoteObject remoteObject=new RemoteObject(container);
//调用flex中demo.Test类的默认构造函数创建一对象,
//并将该对象与本地remoteObject对象关联
remoteObject.createRemoteObject("demo.Test", null);
//调用关联类demo.Test的hello方法,并传入参数
Object obj=remoteObject.call("hello", new Object[]{"Java"});
//将flex返回的字符串转换为对应String类型,并打印出来
System.out.println((String)obj);
}
};
//加载具体的swf文件
container.loadMovie(0, "E:/SmartInvokeTest.swf");

flex调用java:

//创建一代理对象
var remoteObject:RemoteObject=new RemoteObject();
//调用java中demo.JavaServer类的默认构造函数创建一对象,
//并将该对象与本地remoteObject对象关联
remoteObject.create("demo.JavaServer",null);
//调用demo.JavaServer类的hello方法,并传入字符串 flex
var ret:Object=remoteObject.call("hello",["flex"]);
//将java返回的字符串转换为对应String类型
Alert.show("java返回"+ret as String);
//回收关联类的内存
remoteObject.dispose();

是不是很简单呀!而且以上的中间代码都可以用CodeTransform代码转换工具自动生成代理类,
代理类与服务类名称相同,方法也互相对应,在调用本地代理类方法的时候,此代理类方法
就会调用对应服务类的对应方法,并返回该服务类方法的返回值,这样就大大简化了java与flex
之间的互调,真正的实现了调用的本地化。

项目地址:http://smartinvoke.cn/

请大家支持下
...全文
146 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wifewifewife 2009-11-20
  • 打赏
  • 举报
回复
强大,支持,学习了.
gao11811 2009-11-20
  • 打赏
  • 举报
回复
mark

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧