1:背景:
Adobe AIR平台最大的劣势就是很难在该平台的基础上进行扩展,程序的功能受限于
该平台的标准API,而smartrcp使用eclipse插件体系很好的解决了平台的扩展问题。
从此可以使用Java解决复杂的业务逻辑,Flex负责界面展示,Java与Flex互相配合,
充分发挥各自的优势。
2:基本开发步骤如下:
2.1 保证您的eclipse 具有插件开发的功能,File -> New -> Other 看看有没
Plug-in Development 节点如果有则具有插件开发功能。转到smartrcp的解压目录,
将plugins目录下的cn.smartinvoke.smartrcp.core_1.0.0.jar文件拷贝到您eclipse
开发工具的根目录下的plugins目录下。
2.2 创建一名为org.smartrcp.test的plug-in Project,将Target Platform
选中为Equinox。一路next直到完成。打开项目下的MANIFEST.MF文件,打开Dependencies
选项,将cn.smartinvoke.smartrcp.core添加进Required Plug-ins集合,这样该插件才
可以引用到smartrcp的基础类。在org.smartrcp.test包下创建CFileWriter类,内容如下:
package org.smartrcp.test;
import java.io.*;
import cn.smartinvoke.IServerObject;
public class CFileWriter implements IServerObject {
public CFileWriter() {
}
/**
* 将字符串content保存到path文件中
* @param path
* @param content
* @throws IOException
*/
public void saveFile(String path,String content) throws IOException{
Writer writer=new FileWriter(path);
writer.write(content);
writer.flush();
writer.close();
}
public void dispose() {
}
}
2.3 右击org.smartrcp.test项目选择Export -> Plug-in Development ->
Deployable plug-ins and fragments 将该项目导出为一个eclipse 插件。
最后将导出的插件jar文件拷贝到smartrcp安装目录的ext目录中,如果没有该目录则手工
创建之。
2.4 到现在Java部分开发并配置好了,接下来就是Flex部分了,打开先前创建的smartrcpDemo
项目,修改Module_Content.mxml文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<rcp:RCPModule xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:rcp="http://www.smartrcp.org"
layout="vertical" verticalAlign="middle" horizontalAlign="center"
creationComplete="init()"
>
<mx:Script>
<![CDATA[
import cn.smartinvoke.smartrcp.gui.module.CommonDialogs;
import mx.controls.Alert;
import cn.smartinvoke.smartrcp.gui.control.CActionManager;
import cn.smartinvoke.smartrcp.gui.module.CActionEvent;
import mx.collections.ArrayCollection;
import cn.smartinvoke.rcp.CToolBar;
import cn.smartinvoke.smartrcp.gui.FlashViewPart;
import cn.smartinvoke.RemoteObject;
import cn.smartinvoke.smartrcp.gui.ViewPartActionBar;
var actionBar:ViewPartActionBar=null;
//初始化方法,在该方法中为当前视图添加一刷新按钮
function init():void{
/**在容器上添加刷新按钮*/
var parent:RemoteObject=this.flashViewer.getParent();
//如果存载当前flash的容器时viewPart,才具有此功能
if(parent is FlashViewPart){
var viewPart:FlashViewPart=parent as FlashViewPart;
//获得当前视图容器的工具栏容器对象
this.actionBar=viewPart.getPartActionBar();
//注册freshAction到工具栏容器对象actionBar
this.actionBar.addAction(this.freshAction);
//定义工具栏对象
var toolBar:CToolBar=new CToolBar();
//将freshAction 添加到该工具栏对象
toolBar.actionIds=new ArrayCollection([this.freshAction.actionId]);
//将工具栏对象添加到工具栏容器
this.actionBar.fillToolBar(toolBar);
//给freshAction 添加事件监听器
this.actionBar.addListener(this.freshAction.actionId,function (ret:CActionEvent):void{
this.setInfo("刷新当前的所有操作..............");
},this);
}
/**添加对Splash.mxml启动文件中定义的id为test的全局action的事件监听*/
CActionManager.Instance.addListener("test",function (evt:CActionEvent):void{
Alert.show("id为test的全局action被用户点击触发了");
},this);
}
//公共方法,该方法可以被其他模块调用
public function setInfo(info:String):void{
this.labelInfo.text=info;
}
function onSaveClick():void{
/**打开文件保存对话框,并将TextArea中的内容保存到用户选择的路径下*/
var fileWriter:RemoteObject=new RemoteObject();
fileWriter.create("org.smartrcp.test.CFileWriter");
fileWriter.call("saveFile",["D:/testSave.text",this.saveText.text]);
}
]]>
</mx:Script>
<!--定义一action -->
<rcp:CAction id="freshAction" actionId="actionfresh"
imageUrl="icons/update.gif"
text="刷新" toolTip="刷新当前视图"/>
<mx:Label id="labelInfo" text="欢迎使用......"/>
<mx:TextArea id="saveText" width="292" height="144"/>
<mx:Button label="保存" click="onSaveClick()"/>
</rcp:RCPModule>
保存并编译之。
2.5 接下来就是运行啦^_^
打开控制台,切换到smartrcp安装目录,运行
smartrcp.exe -app E:\flexWork\SmartRCPDemo\bin-debug\Splash.swf 命令
-app 参数定义运行时加载的smartrcp程序的启动文件的路径,这里为smartrcpDemo
程序中的Splash.mxml文件编译后得到的Splash.swf文件路径。
当然为了偷懒你也可也在smartrcp安装目录下创建一run.bat批处理文件,将该命令
拷贝到其中,这样只需双击运行该批处理文件就可以了。
运行效果如下图:

在文本框中输入内容,点击保存后你就会发现D:/testSave.text文件中保存了该字符串,
证明我们调用Java是成功了的。

- 大小: 36.9 KB
分享到:
相关推荐
总的来说,通过学习这个“smartrcp入门视频系列三”,开发者可以了解如何使用smartrcp快速构建程序界面,掌握如何结合Flex技术提升用户界面的动态性,同时利用smartrcp的扩展库增强应用的功能。此外,通过阅读相关的...
SmartRCP可能是一个增强的RCP(Rich Client Platform)平台,为开发人员提供了一种更方便的方式来构建桌面应用程序,而不仅仅是Web应用程序。在这一系列的第五部分,它将展示如何在Flex界面中嵌入或者调用IE浏览器,...
c语言学习
人脸识别项目源码实战
人脸识别项目源码实战
本图书进销存管理系统管理员功能有个人中心,用户管理,图书类型管理,进货订单管理,商品退货管理,批销订单管理,图书信息管理,客户信息管理,供应商管理,库存分析管理,收入金额管理,应收金额管理,我的收藏管理。 用户功能有个人中心,图书类型管理,进货订单管理,商品退货管理,批销订单管理,图书信息管理,客户信息管理,供应商管理,库存分析管理,收入金额管理,应收金额管理。因而具有一定的实用性。 本站是一个B/S模式系统,采用Spring Boot框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得图书进销存管理系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高图书进销存管理系统管理效率。 关键词:图书进销存管理系统;Spring Boot框架;MYSQL数据库
基于动态规划和模型预测控制的并联混合电动汽车最佳控制 简介:利用动态规划,使用模型预测控制,实现对并联混合动力电动汽车的最佳控制,并降低总体成本函数 使用动态规划可以实现混合动力电动汽车的优化控制 混合动力电动汽车的模型预测控制是通过使用动态规划在缩短的时域内实现的 代码为纯matlab脚本,附带说明电子文档 ,并联混合电动汽车; 动态规划; 模型预测控制; 最佳控制; 总体成本函数; Matlab脚本。,动态规划与模型预测控制在并联混合动力电动汽车的最优控制策略
人脸识别项目实战
2025 DeepSeek技术全景解析-重塑全球AI生态的中国力量.pdf
能够爬取非会员视频和音频资源,可通过ffmpeg等工具将视频资源和音频资源合并
基于差分进化算法DE的机器人路径规划 本产品基于优化的差分进化算法,专为机器人山地路径规划而设计 通过模拟差分进化过程中的变异、交叉与选择机制,算法能够智能探索并确定最优行进路线,全面考量路径长度、能量消耗及地形适应性 优化之处在于融合了动态差分权重与精英保留策略,显著增强了算法的搜索效率和求解质量,有效规避了早熟收敛的风险 该算法在山地这一复杂且多变的自然环境中展现出卓越性能,完美适配于机器人探险、山地救援、环境监测等多种应用场景 我们矢志为用户提供卓越、稳健的机器人路径规划方案,推动各类山地作业迈向更为精确与高效的路径规划新时代 ,差分进化算法DE; 机器人路径规划; 山地路径规划; 算法优化; 早熟收敛风险规避; 山地探险应用场景; 环境监测场景。,DE算法赋能机器人,优化山地路径规划方案
情侣游戏情侣飞行棋10元真心话大冒险情侣情趣骰子php源码 ----- 程序特色 ----- 1、完整的分销制度,可自定义多种不同的返佣比例 2、支持情侣飞行棋、情趣骰子,多种等级 3、无感微信自动授权登录,支持微信第三方授权登录 4、完全开源无加密
HeidiSQL的12.2.0.6576安装压缩包
监护人,小孩和玩具数据集 4647张原始图片 监护人 食物 孩子 玩具 精确率可达85.4% yolov5pytorch格式
本课程是 PHP 进阶系列之 Swoole 入门精讲,系统讲解 Swoole 在 PHP 高性能开发中的应用,涵盖 协程、异步编程、WebSocket、TCP/UDP 通信、任务投递、定时器等核心功能。通过理论解析和实战案例相结合,帮助开发者掌握 Swoole 的基本使用方法及其在高并发场景下的应用。 适用人群: 适合 有一定 PHP 基础的开发者、希望提升后端性能优化能力的工程师,以及 对高并发、异步编程感兴趣的学习者。 能学到什么: 掌握 Swoole 基础——理解 Swoole 的核心概念,如协程、异步编程、事件驱动等。 高并发处理——学习如何使用 Swoole 构建高并发的 Web 服务器、TCP/UDP 服务器。 实战项目经验——通过案例实践,掌握 Swoole 在 WebSocket、消息队列、微服务等场景的应用。 阅读建议: 建议先掌握 PHP 基础,了解 HTTP 服务器和并发处理相关概念。学习过程中,结合 官方文档和实际项目 进行实践,加深理解,逐步提升 Swoole 开发能力。
机器人先进视觉赛-基于深度学习yolov8的3D识别项目源码含gui界面(最新发布).zip 实现机器人的3D目标识别和分割功能 支持深度图像的处理和分析 【资源详情说明】 【1】该项目为近期精心打造开发,完整代码。同时,配套资料一应俱全,涵盖详细的设计文档 【2】项目上传前源码经过严格测试,在多种环境下均能稳定运行,功能完善且稳定运行,技术研究、教学演示还是项目实践,都能轻松复现,节省时间和精力。 【3】本项目面向计算机相关专业领域的各类人群,对于高校学生,可作为毕业设计、课程设计、日常作业的优质参考;对于科研工作者和行业从业者,可作为项目初期立项演示,助力快速搭建原型,验证思路。 【4】若具备一定技术基础,可在此代码上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 【5】小白,在配置环境或运行项目时遇到困难,可提供远程指导和全方位技术支持。 欢迎下载学习本项目资源,期待与你共同探讨技术问题,交流项目经验!
Matlab实现TSO-XGBoost多变量回归预测 Matlab实现TSO-XGBoost多变量回归预测,金枪鱼算法优化XGBoost多变量回归预测 1.data为数据集,7个输入特征,1个输出特征 2.MainTSO XGboost.m为主程序文件,其他为函数文件,无需运行 3.命令窗口输出R2、MAE、MAE和RMSEP等评价指标,可在下载区获取数据和程序内容 注意程序和数据放在一个文件夹,文件夹不可以XGBoost命名,因为有函数已经用过,运行环境为 Matlab2018及以上,预测效果如下 ,TSO-XGBoost; 多变量回归预测; Matlab实现; 金枪鱼算法优化; 评价指标; 预测效果; 文件夹结构; 运行环境,Matlab中TSO-XGBoost多变量回归预测优化实践
实时音视频SRT协议中文完整版
学习WiFi,入手资料
c语言学习