[英]Can I add a Jython action listener to a java program?
我有一个 Java 程序,我想从 Jython 程序调用它。 我希望能够将这两个接口相互连接,并希望使用动作侦听器作为参数从 Jython 调用 Java 程序,但到目前为止我还没有成功。
杰通代码:
import sys
sys.path.append("sgJython.jar")
from java.awt.event import ActionListener
from java.awt.event import ActionEvent
from sg.gui import MainGui
class MyListener(ActionListener):
def ActionPerformed(e):
print("gotit")
ml = MyListener()
MainGui(ml)
Java 代码:
package sg;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class MainGui
{
public MainGui(ActionListener listener)
{
top = new JFrame();
top.setBounds(300, 300, 600, 300);
JButton doneButton = new JButton("Done");
doneButton.addActionListener(listener);
top.add(doneButton)
}
}
还有其他方法吗? 如果没有,是否有更好的方法 go 将 Java 和 Python 集成到一个应用程序中,或者这不是一件好事吗?
它已经工作的方式,你只需要修复actionPerformed
方法,它有一个错误的签名并且没有声明self
参数。
class MyListener(ActionListener):
def actionPerformed(self, e):
print("gotit")
在您的 Java 代码中,您错过了几个分号,并且由于您没有显示框架,除非您从 Jython 代码中明确要求,否则它将不可见。 所以我为了测试目的改变了一点:
public class MainGui {
private JFrame top;
public MainGui(ActionListener listener) {
top = new JFrame();
top.setBounds(300, 300, 600, 300);
JButton doneButton = new JButton("Done");
doneButton.addActionListener(listener);
top.add(doneButton);
top.pack();
top.setVisible(true);
}
}
我在 Eclipse 的 Java 项目中执行了 Java 代码,在 Eclipse 中的 PyDev 项目中执行了 Python 代码,然后我运行了 Python 脚本,它非常有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.