快速业务通道

使用JavaScript脚本化Java应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
一个脚本

import Package(java.awt, java.awt.event) import Package(Packages.javax.swing) import Class(java.lang.System) import Class(java.lang.reflect.Constructor) function buildPluginMenu(){    var menuPlugin = new JMenu();    menuPlugin.setText("Plugin");    var menuItemListPlugin = new JMenuItem();    menuItemListPlugin.setText("list plugins");    menuItemListPlugin.addActionListener(    new JavaAdapter(      ActionListener, {        actionPerformed : function(event){          var plFrame = new JFrame("plugins list");          var epNote = new JEditorPane();          var s = "";          for(var i = 0; i<pluginList.size();i++){            var pi = pluginList.get(i);            s += pi.getName()+":"+pi.getDescription()+"\n";          }          epNote.setText(s);          epNote.setEditable(false);          plFrame.add(epNote, BorderLayout.CENTER);          plFrame.setSize(200,200);          plFrame.setLocationRelativeTo(null);          plFrame.setVisible(true);        }      }    )    );    menuPlugin.add(menuItemListPlugin);    return menuPlugin; } //this function will be invoked from java code, MainFrame... function _customizeMenuBar_(menuBar){    menuBar.add(buildPluginMenu()); }

我们在脚本中创建一个菜单项,名称为 plugin,这个菜单项中有一个名为 list plugins 的项目,点击之后会弹出一个对话框,显示目前被应用到 sTodo 中的插件(脚 本):

图 4. 点击 list plugins

使用JavaScript脚本化Java应用(7)

时间:2011-04-03 IBM 邱俊涛

图 5. 显示目前被应用到 sTodo 中的插件(脚本)

为了保证 list plugins 的功能,我在 initEnv() 方法中加入了另一个插件 style.js。因此我们可以看到,弹出的窗口正确的显示了目前被加载的插件,这些信息均 来自于宿主程序!

提供第二个脚本

通常情况下,您可能已经有了一个写的比较好的应用模块,而想要在另一个应用中使 用这个模块,比如您有一个 org.free.something 的包,里边已经包含了您写的某个面板 ,其中包含版权信息声明等。现在您开发出了另一个应用,如果把两者集成那就最好了。

我们开发的第二个插件就是涉及如何引用外部包的问题:

比如,我们已经有了一个良好的 Help 界面,定义如下:

代码 7. 一个已有的 Dialog

public class HelpDialog extends JDialog{    private static final long serialVersionUID = - 146997705470075999L;    private JFrame parent;    public HelpDialog(JFrame parent, String title){      super(parent, title, true);      this.parent = parent;      initComponents();    }    private void initComponents(){      setSize(200, 200);      add(new JLabel("Here is the help content..."),  BorderLayout.NORTH);      JButton button = new JButton("Click to close help.");      button.addActionListener(new ActionListener(){        public void actionPerformed(ActionEvent e) {       

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号