实例讲解:开发SWING的XML框架(2)
并发处理如何实现
在这个使用框架开发的程序中,面板的开发者可以将经历集中到如何表达信息而不用担心用户接口的流。一旦XML流被定义,许多开发者都能够同时并发的在应用程序的各个不同面板上进行工作。
如何协调更宽松的开发方式
这个框架的一个重要特点是,新的面板将可以随时被添加进程序中。现有面板的输出也可以仅仅通过修改XML而改变。
在我们的程序中,如果登录的用户是一个管理员,我们需要提供另一个用户选项(user option),用来通过主目录查看管理者的任务面板。这个只需要加上下面额外的代码即可实现。
以下代码应该添加到XFSPanels中:
<XFSPanel name="AdminTasks" class="library.AdminTasks">
<inputs/>
<outputs>
<output variable="adminTaskId"/>
</outputs>
</XFSPanel>
以下代码应该添加到XFSPanelFlow中:
<step id="s6" from="MemberLogin" to="AdminTasks">
<conditions>
<condition variable="controller_isAdmin" value="true"/>
</conditions>
</step>
这个框架工作在XML流上,当它被修改时,流自动的被修改。能够注意到,一旦XML流改变了,开发者可以集中经历开发管理者的任务面板,修改主目录这些工作。而不用担心面板的流,因为它是被框架的控制器关心的。
结论
UI应用的需求经常在改变,这个框架可以帮助你很容易的对付这些改变。尽管JAVA是基于框架的,但本文谈到的这个模式能够应用在任何语言和开发环境中的应用中。SWING应用框架只解释了GUI应用中的模式
相关推荐
-
跟我学Java Swing之游戏设计(1)
文章来源:电脑爱好者 作者:张剑 谁知道通天的巴比伦塔耗费了多少沙石?又有谁知道罗马的建成经历了多少个日夜?我们惟一知道的是,没有一块块砖石的垒砌,就没有蜿蜒万里的长城;没有巨石和黏土的堆集,就没有亘古不变的金字塔.由此可见,基础知识的准备对于我们学习任何事物都至关重要,那么,就让我们从认识Swing的一些基础功能开始,启动我们建造罗马的伟大工程吧! 前言 Java咖啡馆已经开张不少时日了,如果你已经喜欢上了Java这杯咖啡的味道,那么记得常来哦.这一次,我们为大家准备了一大杯香浓的咖啡--将以
-
Java Swing 非常漂亮外观Nimbus的使用方法实例
Java Swing界面外观的一种,在Java 6 Update 10中首次亮相.当 Swing 古老的 Metal界面外观 首次发布时,其主要的美感竞争来自 Windows 95 界面.在十年前的图形用户界面条件下,Metal 界面 相对于当时的其他普通界面来说是一种很有吸引力的高雅的选择.Java SE 5 中更新的 Ocean 主题帮助 Metal 成为目前可行的选择,但是修改 Swing 跨平台界面外观也已是当务之急.进入 Nimbus 界面外观,可以看到崭新的基于 合成 的现代外观.N
-
java swing标准对话框具体实现
复制代码 代码如下: package test001;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JToolBar;public class TestJOptionPane implements
-
跟我学Java Swing之游戏设计(2)
文章来源:电脑爱好者 作者:张剑 还记得<偷天换日>中精灵般穿梭在好莱坞车流中的Minicooper吗?马克·沃尔伯格和莎莉·赛隆就是驾驶着它在仇人的鼻子底下运走了价值千万的黄金.可是,如果现在将一辆无法奔驰的Minicooper躯壳放在你的面前,你会如何看待它?它还是那个游走自如的精灵吗?今天,就让我们一点一点地为这辆Minicooper组装上零件,让它跑起来. 前言 从本期开始,我们为大家提供完整的游戏源代码(点击下载).Java咖啡馆倡导大家理论与实践并重,我们在连载中将给大家介绍关键技
-
实例讲解:开发SWING的XML框架(2)
并发处理如何实现 在这个使用框架开发的程序中,面板的开发者可以将经历集中到如何表达信息而不用担心用户接口的流.一旦XML流被定义,许多开发者都能够同时并发的在应用程序的各个不同面板上进行工作. 如何协调更宽松的开发方式 这个框架的一个重要特点是,新的面板将可以随时被添加进程序中.现有面板的输出也可以仅仅通过修改XML而改变. 在我们的程序中,如果登录的用户是一个管理员,我们需要提供另一个用户选项(user option),用来通过主目录查看管理者的任务面板.这个只需要加上下面额外
-
实例讲解JavaScript的Backbone.js框架中的View视图
Backbone 中的 View 用来反映你 app 中 Model 的模样.它们会监听事件并作出相应的反应. 接下来的教程我不会告诉你如何把 Model 和 Collection 绑定到 View 上,而是主要讨论 View 是如何使用 javascript 模板库的,尤其是 Underscore.js's _.template. 这里我们使用 jQuery 来操作 DOM 元素,当然你也可以使用其他的库,例如 MooTools 或者 Sizzle,但是 Backbone 的官方文档推荐我们使
-
Spring编程式和声明式事务实例讲解小结
Spring事务管理 Spring支持两种方式的事务管理: 编程式事务管理: 通过Transaction Template手动管理事务,实际应用中很少使用, 使用XML配置声明式事务: 推荐使用(代码侵入性最小),实际是通过AOP实现 实现声明式事务的四种方式: 基于 TransactionInterceptor 的声明式事务: Spring 声明式事务的基础,通常也不建议使用这种方式,但是与前面一样,了解这种方式对理解 Spring 声明式事务有很大作用. 基于 TransactionProx
-
PHP开发api接口安全验证的实例讲解
php的api接口 在实际工作中,使用PHP写api接口是经常做的,PHP写好接口后,前台就可以通过链接获取接口提供的数据,而返回的数据一般分为两种情况,xml和json,在这个过程中,服务器并不知道,请求的来源是什么,有可能是别人非法调用我们的接口,获取数据,因此就要使用安全验证. 验证原理 示意图 原理 从图中可以看得很清楚,前台想要调用接口,需要使用几个参数生成签名. 时间戳:当前时间 随机数:随机生成的随机数 口令:前后台开发时,一个双方都知道的标识,相当于暗号 算法规则:商定好的运算规
-
Android Studio应用开发集成百度语音合成使用方法实例讲解
首先,语音合成是指将文本信息转换成声音.意思就是将文本转化为声音,让你的应用开口说话.国内在业内比较有名的第三方语音合成平台有百度语音和科大讯飞. 本文集成的是百度语音合成,其主要特点是: 完全永久免费 业界首创完全永久免费新形式,为开发者提供最流畅最自然的语音合成服务.完全免费,永久使用,彻底摆脱限制. 离线在线融合模式 SDK可以根据当前网络状况,自动判断使用本地引擎还是云端引擎进行语音合成,再也不用担心流量消耗! 多语言多音色可选 中文普通话.中英文混读.男声.女声任你选,更支持语速.音调
-
Vuejs2 + Webpack框架里,模拟下载的实例讲解
在实际的开发工作中,难免要配合销售人员,提前做一些前端的 DEMO 出来.这个时候往往还没有连接后端 API.假如要演示一个下载连接,那么应该如何做呢? 我们希望能够达成以下两点: 1.在开发环境下,我们可以在 webpack-dev-server 开发服务器上点击下载连接,点击后浏览器就能不下载文件. 2.当演示的时候,代码编译后放到 nginx 中.用户可以点击下载链接.nginx存放的都是业务代码. 那么如何做到这两点呢?假如我们要模拟下载一个 test.docx 文件.我们可以利用 ur
-
php中Workerman框架实例讲解
在我们探讨php框架的开发时,更多的是偏向于理论的框架.那么本篇要讲的Workerman框架,与其他的框架有很大的不同,可以广泛的应用在生活中.我们平时所用到的软件,也许正是Workerman开发出来的.下面我们就php中Workerman框架的概念.与其他框架区别带来讲解. 1.概念 Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架.被广泛的用于手机app.移动通讯,微信小程序,手游服务端.网络游戏.PHP聊天室.硬件通讯.智能家居.车联网.物联网等领域的开发
-
Java中Swing类实例讲解
Swing类部分画图方法讲解 定义框架 JFrame jFrame=new JFrame("标题名字"); jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置用户在此窗体上发起 "close" 时默认执行的操作. //有两种选择,默认是 HIDE_ON_CLOSE即点击关闭时隐藏界面. jFrame.setBounds(0,0,1200,1200); //设置框架的大小 jFrame.setVisi
-
打造通用的匀速运动框架(实例讲解)
本文,是接着上 基于匀速运动的实例讲解(侧边栏,淡入淡出) 继续的,在这篇文章的最后,我们做了2个小实例:侧边栏与改变透明度的淡入淡出效果,本文我们把上文的animate函数,继续改造,让他变得更加的通用和强大: 1,支持多个物体的运动 2,同时运动 3,顺序运动 这三种运动方式也是jquery中animate函数支持的 一.animate函数中怎么区分变化不同的样式? 上文中,侧边栏效果 用的animate函数 改变的是left值 function animate(obj, target, s
-
mui开发中获取单选按钮、复选框的值(实例讲解)
js获取单选按钮的值 function getVals(){ var res = getRadioRes('rds'); if(res == null){mui.toast('请选择'); return;} mui.toast(res); } function getRadioRes(className){ var rdsObj = document.getElementsByClassName(className); var checkVal = null; for(i = 0; i < rd
随机推荐
- spring mvc4.1.6 spring4.1.6 hibernate4.3.11 mysql5.5.25开发环境搭建图文教程
- JavaScript 用fetch 实现异步下载文件功能
- SQL Server 2008 数据库镜像部署实例之一 数据库准备
- Angular.JS中的指令与参数详解
- iOS App设计模式开发之适配器模式使用的实战演练
- JavaScript继承学习笔记【新手必看】
- JavaScript中的作用域链和闭包
- Asp.Net防止刷新重复提交数据的办法
- 远程图片自动按文件夹上传到服务器-默飞出品
- Java多线程yield心得分享
- mysql快速添加百万条记录的语句
- 解析csv数据导入mysql的方法
- ip修改后orcale服务无法启动问题解决
- 快速实现jQuery多级菜单效果
- 玩转Windows系统组策略高级技巧
- Android中DrawerLayout+ViewPager滑动冲突的解决方法
- Java 归并排序算法、堆排序算法实例详解
- Android之头像图片变圆形显示
- Android中监听未接来电的2种方法
- nodejs使用redis作为缓存介质实现的封装缓存类示例