How to 'properly' extend javax.swing.JFrame with nashorn?

Christian MICHON christian.michon at gmail.com
Tue Mar 3 11:39:01 UTC 2015


Hi Sundar,

thanks for the explanation. I was already doing what you suggested, and I
wanted to do it the way I'm used to (without "my." within a sub-class
extension).

Nevermind: nashorn is still a great tool.

On Tue, Mar 3, 2015 at 11:50 AM, A. Sundararajan <
sundararajan.athijegannathan at oracle.com> wrote:

> Are you looking for a way to introduce a new constructor? That is not
> supported. The class extension in nashorn is more like Java anonymous
> classes - There too you don't introduce a new constructor - just use
> existing constructor to construct new object.
>
> You can workaround with:
>
> function createMyFrame() {
>   var my = Java.extend(.....) { ... }
>   my.setSize(800, 600);
>   my.visible = true;
>   return my;
> }
>
> -Sundar
>
>
> Christian MICHON wrote:
>
>> Hi,
>>
>> [ I tried to contact Sundar directly (still no answer), but I'd like to
>> get
>> nashorn devs opinion as well. ]
>>
>> I'm currently trying to extend a javax.swing.JFrame to make a small gui
>> using nashorn.
>>
>> When I'm doing this with java or jruby, it's straight forward and quite
>> easy to code a contructor of the derived class to customize dimensions for
>> example.
>>
>> Yet with nashorn I'm struggling: how is named the constructor?
>>
>> I've a small snippet below to share: I'd like to know what is supposed to
>> be in place of XYZ to make frame appear properly (dimensions 800x600).
>>
>> var myJFrame = Java.extend(javax.swing.JFrame, {
>>   XYZ: function() {
>>     setSize(800, 600);
>>     setVisible(true);
>>   }
>> });
>> var my = new myJFrame();
>> java.lang.Thread.currentThread().join();
>>
>>
>> Thanks in advance.
>> Christian
>>
>>
>
>


-- 
Christian


More information about the nashorn-dev mailing list