<pedrocorreia.net ⁄>
 

<Scripting: Javascript to Java Integration (Part 2) ⁄ >




clicks: 3784 3784 2007-01-02 2007-01-02 goto programacao myNews programacao  Bookmark This Bookmark This


Last time I discussed some of the main features of Javascript to Java integration in the Java 6 scripting engine. As you get into more advanced interaction with Java, however, there are some things you have to know to 'cross over'.

Implementing Interfaces

An important component of interacting with Java is the ability to implement Java interfaces. You can pass Javascript objects masquerading as Java objects into Java code, or even return the interface as a completed variable from the script.

There are multiple ways to implement an interface, and following the nature of Javascript, everything is very fluid and casual. The most implicit way to implement an interface is to create a new function (a javascript code block), and pass it in:

importPackage(java.lang);

t = new Thread(function() { println('hello') });
t.start();

The 'function' passed in is translated into a java.lang.Runnable by Rhino; this thread will be started and will execute hello. Yes, that means multi-threaded Javascript is possible.

You can also explicitly create a JS object, and associate nested functions with the appropriate methods of the interface. The Javascript implementation is closely related (syntactically) to a Java anonymous class. Here is how we create a Runnable object and implement the run method:



este é só um excerto do artigo, para aceder ao artigo completo, clique no link em baixo:
this is just a small excerpt from the article, to access the full article please click in the link below:

http://www.javalobby.org/java/forums/t87892.html




Subscribe News RSS  Subscribe News Updates by E-mail





myNews <myNews show="rand" cat="programacao" ⁄>

RouterJs: easy routing for your ajax Web applications new ...

RouterJs is a simple router for your ajax web apps. It's build upon History.js which means that Rout (...)

clicks: 17289 17289 2012-05-14 2012-05-14 goto url (new window) haithembelhaj.g... goto myNews programacao


Backbone computed properties new ...

This gist shows one way to implement read- and write-enabled computed properties on a Backbone Model (...)

clicks: 17075 17075 2012-05-13 2012-05-13 goto url (new window) https://gist.gi... goto myNews programacao


Create Instagram Filters With PHP new ...

In this tutorial, I'll demonstrate how to create vintage (just like Instagram does) photos with PHP (...)

clicks: 16962 16962 2012-05-12 2012-05-12 goto url (new window) net.tutsplus.co... goto myNews programacao


Android Query new ...

Android-Query (AQuery) is a light-weight library for doing asynchronous tasks and manipulating UI el (...)

clicks: 17200 17200 2012-05-12 2012-05-12 goto url (new window) code.google.com... goto myNews programacao


HTML5 jQuery Paint Plugin new ...

Websanova Paint is a HTML5 canvas based jQuery plugin. It allows you to free paint on a canvas area (...)

clicks: 28042 28042 2012-05-12 2012-05-12 goto url (new window) websanova.com/t... goto myNews programacao


Real-time Applications With Node.js and Socket.IO new ...

Hey everyone! Sorry about the long pause since the last blog post, life has been quite hectic for th (...)

clicks: 17329 17329 2012-05-11 2012-05-11 goto url (new window) codingcookies.c... goto myNews programacao


Sass vs. LESS vs. Stylus: Preprocessor Shootout new ...

CSS3 preprocessors are languages written for the sole purpose of adding cool, inventive features to (...)

clicks: 16670 16670 2012-05-11 2012-05-11 goto url (new window) net.tutsplus.co... goto myNews programacao


15 Handpicked jQuery Drop Down Menus Tutorials new ...

Here we are presenting another brilliant collection of 15 jQuery navigation menu that you can downlo (...)

clicks: 16103 16103 2012-05-10 2012-05-10 goto url (new window) smashingapps.co... goto myNews programacao