- 浏览: 53603 次
- 性别:
- 来自: 上海
最新评论
-
sebatinsky:
菜鸟从中飞过,,,。心慌慌。
某互联网公司面试题(二) -
marshaldong:
两层循环,如果内层循环的节点有等于外层循环的节点的,说明有环, ...
某互联网公司面试题(二) -
enefry:
支持hashMap说法.遍历是必须的.只是需要多余空间的支持. ...
某互联网公司面试题(二) -
fivestarwy:
Durian 写道这样的题没啥意义。
除非你喜欢信息奥林匹克竞 ...
某互联网公司面试题(二) -
antonia:
这些题目看着好难。。。。
某互联网公司面试题(二)
/** * ScriptTest * java调用javascript示例代码 * @author your name * Date: Nov 4, 2011 */ package org.sun.script.js; import java.awt.Component; import java.awt.Container; import java.awt.EventQueue; import java.beans.EventSetDescriptor; import java.beans.IntrospectionException; import java.beans.Introspector; import java.io.FileReader; import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.Properties; import javax.script.ScriptEngine; import javax.script.ScriptEngineFactory; import javax.script.ScriptEngineManager; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class ScriptTest { public static void main(final String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { String language; if (args.length == 0) language = "js"; else language = args[0]; ScriptEngineManager manager = new ScriptEngineManager(); System.out.println("Available factories: "); for (ScriptEngineFactory factory : manager.getEngineFactories()) System.out.println(factory.getEngineName()); final ScriptEngine engine = manager.getEngineByName(language); if (engine == null) { System.err.println("No engine for " + language); System.exit(1); } ButtonFrame frame = new ButtonFrame(); try { // File initFile = new File("init." + language); // if (initFile.exists()) // { // System.out.println("exists"); // engine.eval(new FileReader(initFile)); // } getComponentBindings(frame, engine); final Properties events = new Properties(); events.load(new FileReader("bin\\org\\sun\\script\\js\\" + language + ".properties")); for (final Object e : events.keySet()) { String[] s = ((String) e).split("\\."); addListener(s[0], s[1], (String) events.get(e), engine); } } catch (Exception e) { e.printStackTrace(); } frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setTitle("ScriptTest"); frame.setVisible(true); } }); } /** * Gathers all named components in a container. * * @param c the component * @param namedComponents */ private static void getComponentBindings(Component c, ScriptEngine engine) { String name = c.getName(); if (name != null) engine.put(name, c); if (c instanceof Container) { for (Component child : ((Container) c).getComponents()) getComponentBindings(child, engine); } } /** * Adds a listener to an object whose listener method executes a script. * * @param beanName the name of the bean to which the listener should be * added * @param eventName the name of the listener type, such as "action" or * "change" * @param scriptCode the script code to be executed * @param engine the engine that executes the code * @param bindings the bindings for the execution */ private static void addListener(String beanName, String eventName, final String scriptCode, final ScriptEngine engine) throws IllegalArgumentException, IntrospectionException, IllegalAccessException, InvocationTargetException { Object bean = engine.get(beanName); EventSetDescriptor descriptor = getEventSetDescriptor(bean, eventName); if (descriptor == null) return; descriptor.getAddListenerMethod().invoke(bean, Proxy.newProxyInstance(null, new Class[] { descriptor.getListenerType() }, new InvocationHandler() { public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { engine.eval(scriptCode); return null; } })); } private static EventSetDescriptor getEventSetDescriptor(Object bean, String eventName) throws IntrospectionException { for (EventSetDescriptor descriptor : Introspector.getBeanInfo(bean.getClass()).getEventSetDescriptors()) if (descriptor.getName().equals(eventName)) return descriptor; return null; } } class ButtonFrame extends JFrame { public ButtonFrame() { setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); panel = new JPanel(); panel.setName("panel"); add(panel); yellowButton = new JButton("Yellow"); yellowButton.setName("yellowButton"); blueButton = new JButton("Blue"); blueButton.setName("blueButton"); redButton = new JButton("Red"); redButton.setName("redButton"); panel.add(yellowButton); panel.add(blueButton); panel.add(redButton); } public static final int DEFAULT_WIDTH = 300; public static final int DEFAULT_HEIGHT = 200; private JPanel panel; private JButton yellowButton; private JButton blueButton; private JButton redButton; }
js.properties
yellowButton.action=panel.background = java.awt.Color.YELLOW blueButton.action=panel.background = java.awt.Color.BLUE redButton.action=panel.background = java.awt.Color.RED
发表评论
-
看到一段很有新意的java代码
2013-06-10 15:03 859问题: 现在有N多授权用户(id,name. ... -
Ubuntu环境下在Eclipse中安装jad反编译插件
2013-02-23 14:36 3745首先,还是到http://www.varaneckas.co ... -
JDK代码也不是完美的,垃圾四处可见
2011-10-13 16:53 0package java.nio; public abstr ... -
基于Eclipse的代码开发准备
2011-10-07 17:13 1427//这个代码框在可视化编辑器下无法删除,切换编辑器整篇文章格式 ... -
关于一段代码的疑惑
2011-09-28 13:50 847今天需要写一段关于输入字符串的check的代码,突然想到equ ... -
个人java基础总结
2011-06-12 21:55 932<!-- @page { margin: 2cm } ... -
某互联网公司面试题(二)
2011-06-03 00:58 2228接上贴http://lgsun592.iteye.com/ad ... -
一个简单的Structs2+Spring3+Hibernate3的例子
2011-04-07 23:43 2854留着以后学习用,嘿嘿 基本环境: Eclipse j2ee j ... -
关于getHibernateTemplate返回值为空的问题
2011-04-07 00:32 15csdn提问,需要将2个压缩包同时下载后放到同一目录方可解压缩 ... -
Junit测试备忘录
2011-03-28 21:14 935最简单的Junit4x sample, ... -
Java反射备忘录
2011-03-28 20:09 940在看spring的时候发现很 ... -
一个简单的Spring验证登录示例
2011-03-17 23:50 8782//*************************** ... -
将配置文件转化为utf-8的dos命令
2011-03-17 23:38 1312如果Eclipse 没有安装对应的插件,可以使用dos命令将配 ... -
SSH问题汇总1
2011-03-01 20:40 1444SSH遇到如下异常: Exception in thread ... -
spring学习笔记
2011-01-08 21:08 01.在config.xml中配置 <?xml ver ... -
log4j的配置示例
2011-01-08 17:48 793突然发现无论java还是.net关于log那部分都是人家做好了 ...
相关推荐
主要介绍了android webview中使用Java调用JavaScript方法并获取返回值,本文直接给出代码示例,需要的朋友可以参考下
主要介绍了Java调用JavaScript实现字符串计算器代码示例,具有一定参考价值,需要的朋友可以了解下。
js原生调用webservice接口,在IE-v11上测试通过,示例中存在参数传入失败的bug,已附源码,望指点解决的方法。
使用GraalVM在Java项目中运行JavaScript 使用GraalVM进行Java和JavaScript代码互操作性的示例项目有关更多信息,如何运行的说明和详细说明,请访问
json-rpc-for-java,是仅仅不到100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持级联调用,也就是说不需要额外 的JavaScript编程,...
Java执行和调用JavaScript脚本文件的示例,使用Java调用JavaScript文件并输入结果。
android studio 1.0.2工程。javascript调用android中的java方法。
JavaScript 调用 Java Android 中 WebView 添加供 Html 页面调用的 Java 方法: mWebView.addJavascriptInterface(new DirectToJS(), AndroidObj); class DirectToJS{ @JavascriptInterface public void ...
3 在我的其他资源中也有关于列表和树的组件使用示例: http: download csdn net detail pxzsky 6659071 这个工程是免费的(也可以认为开源) 里面使用了dhtml tree grid 很多地方用了tree 而grid目前只剩下角色管理...
本示例 将英文词典整合到Web 页中(JavaScript 调用 Java 方法),要实现效果,必须先启动ch06_dictionary_contentprovider 工程
kettle中使用功能java和JavaScript调用jar中的方法示例
本资源是博客《js 动态调用 applet 内的方法》一文示例程序,博客地址:http://blog.csdn.net/defonds/archive/2011/03/23/6270498.aspx。 以下步骤、命令行全都在 jsCallApplet 目录下进行。 步骤一:将 FileApplet...
brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准...
主要介绍了Android中在WebView里实现Javascript调用Java类的方法,本文直接给出示例,需要的朋友可以参考下
各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码...
各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码...
本文介绍了Rhino脚本引擎,如何在Java中使用脚本引擎调用javascript,以及javascript和java间的交互,并给与示例代码。
//循环调用,如果已经获取到了结果,则退出循环 loopgetinfo = setInterval(“checksdztsub()”,50); //这里循环调用,间隔50毫秒 } function checksdztsub(){ if ($(“#viewObj_zt_text”).val() !=”” && $(“#...
各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码...
brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准...