快速业务通道

为Java应用程序加入脚本引擎 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-04
 runScript(String script)    {   try   {    StringReader reader = new StringReader(script);        runScript( "New script", reader);      }      catch(Exception ex)      {    ex.printStackTrace();    System.out.println(ex);        return;      }    }    public static void runScript(String scriptInfo, Reader  reader)    {      Interpreter interpreter = new Interpreter (reader,System.out,System.out,true,namespace);      try      {        if(notepad != null)        {          JTextComponent editor = notepad.getEditor(); interpreter.set("application",notepad); //将应用程序的变量传入解释 器, interpreter.set("editor", editor);   //这样就可在脚本中使用这个 变量参照         running = true;        interpreter.eval(reader, namespace, scriptInfo);    }      }      catch(Throwable throwable)      {    throwable.printStackTrace();    JOptionPane.showMessageDialog(notepad,      new Object[]      {"Script 错误!",      throwable.getMessage()},      "错误",JOptionPane.ERROR_MESSAGE);      }      finally      {        running = false;      }    }   public static boolean isMacroRunning()   {   return running;   } }

为Java应用程序加入脚本引擎(4)

时间:2011-06-19 IBM 陈先波

这个BeanShell提供了三个方法, void initBeanShell(Notepad),这个方法进行初始化。

void runScript(String script),这个方法可直接运行脚本代码。

void runScript(String scriptInfo, Reader reader),这个方法可从一个 Reader流中运行脚本。

而真正核心的执行脚本的代码在void runScript(String scriptInfo, Reader reader)方法中,大家注意,代码中先创建了一个BeanShell的解释器实例,

Interpreter interpreter = new Interpreter (reader,System.out,System.out,true,namespace);

然后将Notepad程序的实例变量传入解释器,这样就可直接在脚本中引用 Notedpad的实例了,

JTextComponent editor = notepad.getEditor(); interpreter.set("application",notepad); //将应用程序的变量传入解释 器, interpreter.set("editor", editor);   //这样就可在脚本中使用这个 变量参照

接下来看看如何把BeanShell嵌入到Notepad程序中,笔者写了几个类, Main ,用来初始化,并在Notepad程序中加入一个"Script Editor"的菜单 ScriptEditor,简单的脚本编辑器,用来编辑或载入脚本,运行脚本程序。 ScriptEditorAction,启动Script Editor的Action.

下面是Main.class的主要代码,

 Notepad notepad = new Notepad();   JMenu editMenu = new JMenu("Script Editor");   JMenuItem editItem = new JMenuItem();   editMenu.add(editItem);   editItem.setAction(new ScriptEditorAction(notepad));   notepad.getMenubar().add(editMenu);

以上程序取得Notepad程序的Menu Bar,并添加一个Script Editor菜单到其中 ,这样,就可不用修改Notepad程序,并在其中加入启动Script Editor的菜单。

下图是程序运行中的画面:

为Java应用程序加入脚本引擎(5)

时间:2011-06-19 IBM 陈先波

写一个简单的脚本

现在我们

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号