【问题标题】:Creating a JFrame / JLabel using Jython syntax使用 Jython 语法创建 JFrame / JLabel
【发布时间】:2012-03-18 23:59:43
【问题描述】:

我想创建一个显示消息和图形的小型 Java 小程序,但使用 Jython 完成。使用下面的代码,我收到错误消息“TypeError: setIcon(): 1st arg can't be coerced to javax.swing.Icon”

谁能提供建议

  1. 我怎样才能让这段代码工作?
  2. 在哪里可以找到使用 Java.swing 对象构建 GUI 窗口的 Jython 示例?

非常感谢! -thescoop。

#############################
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);
#

【问题讨论】:

  • 如果下面 Favonius 的回答解决了您的问题,您可以点击旁边的褪色绿色勾号接受它:)

标签: java swing jython jlabel


【解决方案1】:

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

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

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

【讨论】:

  • Favonius,它奏效了。真的非常感谢,我花了两天时间把头撞在墙上……比阿司匹林好!
  • 请注意,在不指定路径的情况下加载图像时使用当前工作目录。当我将 Jython 脚本传递给位于另一个文件夹中的 Java 程序时,这让我有些头疼,但通过从 sys.argv[0] 获取脚本路径解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多