Mailing List Archive

How to call a Java superclass from jpython ??
Hello,

I´m trying to port some java applications into jpython.
Now I got a problem. I´m not able to call a java superclass from
jpython.
Did anybody know how to call them? Here the code I´m trying to convert:

It´s from PropertiesMetalTheme.java of the JDK Metalworks example.
In method initcolors:

...
primary1 = super.getPrimary1()

Everything I tried in jpython failed. In some other cases replacing the
super call into a construct like:

...
ParentClass.method(self)

works fine, but in this case

...
DefaultMetalTheme.getPrimary1()

and all other constructs failed. I´m using JPython 1.1 beta 2 so
calls like self.super__method are obsolte and didn´t work anymore.
(I think :-)) or better I tried without success)

Thanks Markus
How to call a Java superclass from jpython ?? [ In reply to ]
"Markus A. Greiner" wrote:
>
> Hello,
>
> I´m trying to port some java applications into jpython.
> Now I got a problem. I´m not able to call a java superclass from
> jpython.
> Did anybody know how to call them? Here the code I´m trying to convert:
>
> It´s from PropertiesMetalTheme.java of the JDK Metalworks example.
> In method initcolors:
>
> ...
> primary1 = super.getPrimary1()
>
> Everything I tried in jpython failed. In some other cases replacing the
> super call into a construct like:
>
> ...
> ParentClass.method(self)
>
> works fine, but in this case
>
> ...
> DefaultMetalTheme.getPrimary1()
>
> and all other constructs failed. I´m using JPython 1.1 beta 2 so
> calls like self.super__method are obsolte and didn´t work anymore.
> (I think :-)) or better I tried without success)
>
> Thanks Markus

You try to call a protected method. This problem should be fixed in
JPython 1.1.


--

Daniel Sass
How to call a Java superclass from jpython ?? [ In reply to ]
"Markus A. Greiner" wrote:

> I´m trying to port some java applications into jpython.
> Now I got a problem. I´m not able to call a java superclass from
> jpython.
> Did anybody know how to call them? Here the code I´m trying to convert:
>
> It´s from PropertiesMetalTheme.java of the JDK Metalworks example.
> In method initcolors:
>
> ...
> primary1 = super.getPrimary1()
>
> Everything I tried in jpython failed. In some other cases replacing the
> super call into a construct like:
>
> ...
> ParentClass.method(self)
>
> works fine, but in this case
>
> ...
> DefaultMetalTheme.getPrimary1()

I'm sure you mean
DefaultMetalTheme.getPrimary1(self)
But either way, it does not work in JPython1.1beta2

> and all other constructs failed. I´m using JPython 1.1 beta 2 so
> calls like self.super__method are obsolte and didn´t work anymore.
> (I think :-)) or better I tried without success)

The super__ methods should no longer be necessary, but they still work,
so as a temporary workaround you could perhaps use something like this:

from javax.swing.plaf import metal

class PropertiesMetalTheme(metal.DefaultMetalTheme):
def initColors(self):
self._primary1 = self.super__getPrimary1()
def getPrimary1(self):
return self._primary1

p = PropertiesMetalTheme()
p.initColors()
print p.primary1

BTW, the chance of an answer to jpython questions are much higher in
jpython-interest mail list.

--
Regards
Finn Bock