Java 使用Jython语法创建JFrame/JLabel

Java 使用Jython语法创建JFrame/JLabel,java,swing,jython,jlabel,Java,Swing,Jython,Jlabel,我想创建一个显示消息和图形的小Java小程序,但使用Jython完成。使用下面的代码,我得到错误消息TypeError:setIcon:1st arg不能强制为javax.swing.Icon 有人能就此事提出建议吗 如何让这段代码正常工作? 在哪里可以找到使用Java.swing对象构建GUI窗口的Jython示例? 非常感谢! -Thessoop ############################# from javax.swing import JFrame; from javax.

我想创建一个显示消息和图形的小Java小程序,但使用Jython完成。使用下面的代码,我得到错误消息TypeError:setIcon:1st arg不能强制为javax.swing.Icon

有人能就此事提出建议吗

如何让这段代码正常工作? 在哪里可以找到使用Java.swing对象构建GUI窗口的Jython示例? 非常感谢! -Thessoop

#############################
from javax.swing import JFrame;
from javax.swing import *;
from java.awt import *;

jf = JFrame();
jf.setSize(500,500);
jf.setLocation(100, 50);
jf.setTitle('This is the title');
jf.setLayout(FlowLayout());
l = JLabel();
l.setIcon('lena.png');
jf.add(l);
jf.pack();
jf.setVisible(True);
问题在于l.setIcon'lena.png';setIcon方法需要一个图标而不是字符串。正确的方法是创建一个ImageIcon,然后使用它。例如:

ico = ImageIcon('croco.png');
l.setIcon(ico);
croco.png是我系统上的一个测试映像。

问题在于l.setIcon'lena.png';setIcon方法需要一个图标而不是字符串。正确的方法是创建一个ImageIcon,然后使用它。例如:

ico = ImageIcon('croco.png');
l.setIcon(ico);

croco.png是我系统上的一个测试图像。

Favonius,它成功了。真的非常感谢,我花了两天的大部分时间把头撞在墙上,这比吃阿斯匹林好!请注意,在加载映像而不指定路径时,将使用当前工作目录。当我将Jython脚本传递给位于另一个文件夹中的Java程序时,这让我有些头疼,但通过从sys.argv[0]获取脚本路径解决了这个问题。Favonius,它成功了。真的非常感谢,我花了两天的大部分时间把头撞在墙上,这比吃阿斯匹林好!请注意,在加载映像而不指定路径时,将使用当前工作目录。当我将Jython脚本传递给另一个文件夹中的Java程序时,这让我有些头疼,但通过从sys.argv[0]获取脚本路径解决了问题。如果下面Favonius的答案解决了您的问题,您可以通过单击旁边褪色的绿色勾号来接受它:如果下面Favonius的答案解决了您的问题,您可以通过单击其旁边褪色的绿色勾号来接受它: