- 浏览: 54652 次
- 性别:
- 来自: 上海
最新评论
-
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 901问题: 现在有N多授权用户(id,name. ... -
Ubuntu环境下在Eclipse中安装jad反编译插件
2013-02-23 14:36 3793首先,还是到http://www.varaneckas.co ... -
JDK代码也不是完美的,垃圾四处可见
2011-10-13 16:53 0package java.nio; public abstr ... -
基于Eclipse的代码开发准备
2011-10-07 17:13 1475//这个代码框在可视化编辑器下无法删除,切换编辑器整篇文章格式 ... -
关于一段代码的疑惑
2011-09-28 13:50 877今天需要写一段关于输入字符串的check的代码,突然想到equ ... -
个人java基础总结
2011-06-12 21:55 978<!-- @page { margin: 2cm } ... -
某互联网公司面试题(二)
2011-06-03 00:58 2276接上贴http://lgsun592.iteye.com/ad ... -
一个简单的Structs2+Spring3+Hibernate3的例子
2011-04-07 23:43 2900留着以后学习用,嘿嘿 基本环境: Eclipse j2ee j ... -
关于getHibernateTemplate返回值为空的问题
2011-04-07 00:32 15csdn提问,需要将2个压缩包同时下载后放到同一目录方可解压缩 ... -
Junit测试备忘录
2011-03-28 21:14 976最简单的Junit4x sample, ... -
Java反射备忘录
2011-03-28 20:09 985在看spring的时候发现很 ... -
一个简单的Spring验证登录示例
2011-03-17 23:50 8829//*************************** ... -
将配置文件转化为utf-8的dos命令
2011-03-17 23:38 1353如果Eclipse 没有安装对应的插件,可以使用dos命令将配 ... -
SSH问题汇总1
2011-03-01 20:40 1488SSH遇到如下异常: Exception in thread ... -
spring学习笔记
2011-01-08 21:08 01.在config.xml中配置 <?xml ver ... -
log4j的配置示例
2011-01-08 17:48 831突然发现无论java还是.net关于log那部分都是人家做好了 ...
相关推荐
Java调用Javascript的技术涉及了在Java Applet中通过脚本接口与Web页面上的JavaScript代码进行交互。这部分技术在当前的Web开发中已较少使用,因为Java Applet的安全性问题和浏览器的兼容性问题,使得现代浏览器逐渐...
接下来,将总结Java调用JavaScript实现字符串计算器的相关知识点: 1. 使用javax.script包中的类:要实现这一功能,必须使用javax.script包中的ScriptEngineManager类和ScriptEngine类。 2. 创建JavaScript脚本...
Java 调用 JS 方法是指在 Java 代码中调用 JavaScript 代码的方法,从而实现 Java 和 JavaScript 之间的交互。在本文中,我们将详细介绍 Java 调用 JS 方法的实现步骤和相关知识点。 Java 调用 JS 方法的实现 在 ...
在标题《kettle中调用java类》示例代码中,我们关注的是如何在Kettle的转换或作业中嵌入Java代码,以实现更复杂的数据处理逻辑。 首先,Kettle支持两种方式来调用Java类:使用“Java Class”步骤和使用“Execute ...
1. **Java调用JavaScript**: - `loadUrl`: 使用WebView的`loadUrl`方法可以加载网页URL或执行JavaScript代码。例如,要执行一段JavaScript代码,我们可以这样做: ```java webView.loadUrl("javascript:...
首先,我们注意到在示例中,JavaScript调用Web服务的函数`ajaxRequest()`负责发起请求。该函数的第3行定义了Web服务的URL,这里是`http://localhost:88/webservicedemo.asmx`。这表明Web服务运行在本地主机的88端口...
"java调用js方法.doc"很可能是详细描述如何从Java调用JS函数的步骤和示例。 在实际应用中,Java代码可能会通过Ajax发送一个请求到服务器,服务器解析请求后调用对应的JS函数,例如在"des.js"中执行解密操作,然后将...
Java调用Kettle代码主要涉及两个关键点:Java编程与Kettle(Pentaho Data Integration,简称PDI)工具的集成。Kettle是一款强大的ETL(Extract, Transform, Load)工具,用于数据抽取、转换和加载。Java作为广泛应用...
"Android调用JavaScript.zip"这个压缩包可能包含了关于如何在Android中调用JavaScript代码的相关示例和资源。下面我们将深入探讨这一主题。 1. **WebView组件** Android中的WebView是一个可以加载和显示网页的控件...
总结来说,Java调用IE内核主要涉及Java与ActiveX控件的交互,这一技术虽然有一定的历史背景,但在现代Web开发中已经较少使用,更多的现代解决方案倾向于使用标准Web技术或者基于Chromium的框架。理解和学习这个知识...
从XSLT样式表调用JavaScript的知识点解析 在探讨如何从XSLT样式表调用JavaScript时,我们首先需要理解XSLT和JavaScript的基本概念及其在XML文档处理中的作用。XSLT(Extensible Stylesheet Language ...
Java调用Echarts3简单封装及示例 在Java开发中,Echarts作为一个强大的数据可视化库,被广泛用于创建各种图表。Echarts3是Echarts的第三个主要版本,提供了丰富的图表类型、美观的视觉效果以及良好的交互性。为了在...
源代码可能包括创建`ScriptEngine`、编写和执行JavaScript代码、以及调用JavaScript函数的示例。 总的来说,通过JSR 223,Java开发者可以轻松地在Java程序中嵌入JavaScript,实现两者的交互,从而利用JavaScript的...
标题“dwr测试,java调用js”表明我们将探讨如何通过DWR进行测试,并演示Java如何调用JavaScript代码。DWR提供了两种主要的交互模式:`Call`和`Reverse Call`。`Call`模式是常规的前端到后端的通信,而`Reverse Call...
二、Java调用JS 1. **loadUrl()**: 使用`WebView.loadUrl("javascript:your_function()")`可以调用JavaScript中的函数。这里的`your_function()`是JavaScript中的函数名。 2. **evaluateJavascript()**: Android ...
压缩包中的文件可能包含了Java源代码和JavaScript源代码示例,以及可能的测试数据。这些文件可以直接运行,用于演示如何在Java和JavaScript之间进行DES加密解密。通过查看和理解这些代码,你可以更好地了解如何在...
本文将详细介绍如何利用Java调用JavaScript来实现这一目标,并通过一个具体的示例代码进行深入剖析。 #### 一、背景介绍 在传统的应用程序中,更改算法通常意味着需要修改源代码并重新编译部署。这种方式不仅效率...
2. **JavaScript到Java的互操作性**:Rhino允许JavaScript代码直接调用Java对象和方法,反之亦然,极大地增强了两种语言的交互性。 3. **嵌入到Java应用程序**:Rhino可以轻易地被嵌入到Java应用程序中,作为动态...
类似于有参数的Java调用JavaScript,JavaScript也可以调用带有参数的Java方法,只需确保在JavaScript端正确地传递参数。如前所述,通过`MyJsInterface`接口调用`myMethod()`方法并传递参数。 ```javascript // ...
7. **示例代码**:`goole地图调用示例`可能包含了演示如何使用Java调用Google Maps API的代码片段,可以参考学习。 综上所述,Java调用Google Maps涉及到网络请求、JSON解析以及可能的地图渲染。通过合理运用这些...