2012-02-29 74 views
2

我想創建一個顯示消息和圖形但使用Jython完成的小型Java小程序。使用下面的代碼,我得到錯誤信息「類型錯誤:setIcon()來:1 ARG不能被強制爲javax.swing.Icon」使用Jython語法創建JFrame/JLabel

任何人都可以提供出主意

  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); 
+0

如果Favonius的答案在下面解決了您的問題,您可以通過點擊旁邊淡綠色的勾號來接受它:) – 2012-03-12 06:14:08

回答

4

的課題在l.setIcon('lena.png');setIcon()方法需要一個圖標,而不是一個字符串。正確的方法是創建一個ImageIcon然後使用它。例如:

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

croco.png是我的系統上的測試圖像。

+0

Favonius,它的工作。 非常感謝,我花了兩天的最佳時間,把我的頭撞在牆上,超過了這個......比阿司匹林更好! – thescoop 2012-02-29 19:46:58

+0

請注意,當您加載圖像而未指定路徑時使用當前工作目錄。當我將Jython腳本傳遞給位於另一個文件夾中的Java程序時,這使我感到頭疼,但是它是通過從sys.argv [0]中獲取腳本路徑來解決的。 – fejd 2012-03-09 14:55:21