From: Jeff E. <JEm...@lg...> - 2003-10-15 14:52:25
|
This full example works for me. MyClass.java: import javax.swing.JFrame; public class MyClass implements Runnable{ public JFrame frame =3D new JFrame(); public void run() { System.out.println("Starting..."); frame.setSize(200,200); frame.show(); } } RunMyClass.java: import org.python.util.PythonInterpreter; public class RunMyClass { public static void main(String[] args){ PythonInterpreter interp=3Dnew PythonInterpreter(); MyClass obj1 =3D new MyClass(); interp.set("obj1",obj1); MyClass myObject =3D (MyClass)interp.get("obj1",MyClass.class); myObject.run(); } } -----Original Message----- From: Kay [mailto:ka...@gm...] Sent: Tuesday, October 14, 2003 6:50 AM To: jyt...@li...; Jeff Emanuel Subject: AW: [Jython-users] call a java-method from embedded = interpreter Thank you for your answers. Now i know where the mistake is. The way you show, only works if the java-method is declared 'static'. But in my example the java-method 'run' is non-static and causes an error if i start it with the interpreter. Is there a way to start non-static java-method with the interpreter? Regards, Kay -----Urspr=FCngliche Nachricht----- Von: Jeff Emanuel [mailto:JEm...@lg...] Gesendet: Montag, 13. Oktober 2003 17:30 An: 'Kay ' Cc: 'jyt...@li...' Betreff: RE: [Jython-users] call a java-method from embedded = interpreter In addition to what Diez said, you could change >PyObject pyObject =3D interp.eval("obj1"); >pyObject.__getattr__("run").__call__(); <--- doesn't work?! to MyClass myObject =3D (MyClass)interp.get("obj1",MyClass.class); myObject.run(); -----Original Message----- From: Kay To: jyt...@li... Sent: 10/12/2003 5:58 PM Subject: [Jython-users] call a java-method from embedded interpreter Hello! I want to start the method "run()" (with an embedded interpreter) from 'MyClass.java', but i'm getting the following exception: --> Traceback (innermost last): (no code object) at line 0 TypeError: run(): expected 1 args; got 0 <-- ... dir() shows "obj1"; The InteractiveConsole starts 'run' without problems! Do you know, where is the mistake? Thx! Regards, Kay -=3D> App.java <=3D- : Object obj; : interp =3D new PythonInterpreter(); interp.set("obj1", obj); PyObject pyObject =3D interp.eval("obj1"); pyObject.__getattr__("run").__call__(); <--- doesn't work?! : -=3D> MyClass.java <=3D- public class MyClass implements Runnable{ public JFrame frame =3D new JFrame(); public void run() { System.out.println("Starting..."); frame.setSize(200,200); frame.show(); } } ******************************************************************** ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php _______________________________________________ Jython-users mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-users ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php _______________________________________________ Jython-users mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-users |