扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年8月23日
关键字: VB
图9. 部署应用程序.
理解runproz的机制很重要,虽然很简单,让我们注意下行:"%JAVA_HOME%\bin\java.exe" exec %1
exec是示例包装器AbaRenderer提供的默认加载机制,参数%1指的是AbaGUIBuilder应用程序JAR的名字。当JAR的路径和名字传给exec.java时,它将加载和运行指定的应用程序JAR。这就是应用程序JAR运行的机制。
编写自己的包装器
AbaRenderer包装器是一个用AbaRenderer 对象来加载应用程序jar的Java程序。包装器是一个仅仅需要几行代码的简单程序。
public class exec
{
public static AbaRenderer m_AbaRenderer ;
// Assignments for this user interface
public static void main(String[] args)
{
String docname = new String(args[0]);
try
{
System.out.println("Loading.." + docname);
m_AbaRenderer = new AbaRenderer(docname, true , null);
boolean bTestLoad = m_AbaRenderer.load();
if(bTestLoad)
m_AbaRenderer.renderInterface(); }
catch(Exception e)
{e.printStackTrace();}
}
}
当部署应用程序时,你可以选择使用runproz和示例包装器来发布它,也可以使用你自己写的包装器和classpath。当你需要为你的包装器增加其它的一些特征时我们推荐你编写自己的包装器,例如:使用第三方程序库的监听器,手工初始化对象,为组合框增加代码,或者最后将UI从业务逻辑中分离出来等。
将业务逻辑从UI中分离出来
为了将应用程序的UI和业务逻辑分离开,你必须写自己的包装器。一个分离的简单例子就是在开发工具和项目以外,通过包装器手工地初始化应用程序的可视组件。当你再次调用时,GUI编译器生成一个声明文件。这个文件有一个访问方法可以初始化一系列私有变量,这些私有变量是表单上可视对象的引用。getReferences()方法允许开发者访问和操作表单上的任一可视组件。
下面的exec2程序在第一个制表符位置初始化了一个组合框,示范了一个简单的应用程序UI和业务逻辑的分离:
public class exec2
{
public static AbaRenderer m_AbaRenderer ;
// Declarations of variables for this user interface.
…….
private JComboBox JStComboBox;
// Assignments for this user interface
public void getReferences()
{
…..
//Loads the visual object JComboBox1 to private data JComboBox1
JStComboBox= (JComboBox)m_AbaRenderer.getObject("JComboBox1");
…..
}
// Assignments for this user interface
public static void main(String[] args)
{
String docname = new String(args[0]);
try
{
System.out.println("Loading.." + docname);
m_AbaRenderer = new AbaRenderer(docname, true , null);
boolean bTestLoad = m_AbaRenderer.load();
if(bTestLoad)
{
m_AbaRenderer.renderInterface();
getReferences();
// Sample access to objects
JStComboBox.addItem("FL");
JStComboBox.addItem("CA");
JStComboBox.addItem("WA");
JStComboBox.addItem("MD");
JStComboBox.addItem("PA");
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
上面例子演示了一个简单、清晰的UI和业务逻辑的分离。明显的优势就是你可以轻松地改变初始化例程而不需要改变应用程序UI。你将发现当你的应用程序变得越来越大,越来越复杂时,这一特征越来越重要——对于所有的开发项目而言,这将是一个值得效仿的做法。
结论
AbaGUIBuilder最初是为了满足我们的Delphi应用程序开发者的需要而设计的,节省了很多开发时间,而且是我们的GUI开发转换变得容易。对于其他的大多数Delphi和VB的开发者而言,它也能做得很好。
资源
·下载本文源代码: http://www.javaworld.com/javaworld/jw-12-2005/abacus/jw-1219-abacus.zip
·下载AbaGUIBuilder: http://sourceforge.net/projects/abaguibuilder
·Screen shots和其他文章: http://www.openabacus.org
·Abacus 研究: http://www.abacus.ch
·更多关于GUI开发的文章,请浏览JavaWorld文章列表的用户界面设计部分: http://www.javaworld.com/channel_content/jw-ui-index.shtml
·GUI编程论坛:http://www.matrix.org.cn/topic.shtml?forumId=49
版权声明:任何获得Matrix授权的网站,转载时请务必保留以下作者信息和链接
原文:http://www.javaworld.com/
译文:http://www.matrix.org.cn/
查看本文来源
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者