2012-02-29 5 views
2

メッセージとグラフィックを表示する小さなJavaアプレットを作成したいと思いますが、Jythonを使用しています。私はエラーメッセージを得るの下のコードを使用した「TypeError例外を:setIcon():第一のargはjavax.swing.Iconに強制変換することができません」私は取得できますかJython構文を使用してJFrame/JLabelを作成する

誰が

    へとアドバイスを提供することができます
  1. このコードチャンクは機能していますか?
  2. Java.swingオブジェクトを使用してGUIウィンドウを構築するJythonの例がありますか?

本当にありがとうございました! - テスコープ。

############################# 
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の答えがあなたの問題を解決した場合は、その隣にある薄緑色のダニをクリックして受け入れることができます:) –

答えて

4

は問題がsetIcon()方法がアイコンではなく、文字列を期待l.setIcon('lena.png');です。正しい方法はImageIconを作成し、それを使用することです。たとえば:

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

croco.pngは私のシステム上のテスト画像です。

+0

Favonius、それは働いた。 本当にありがたいことに、私は2日のうちに壁の上に頭を突き刺して最高の部分を過ごしました。これはアスピリンよりも優れています! – thescoop

+0

現在の作業ディレクトリは、パスを指定せずにイメージをロードするときに使用されることに注意してください。私のJythonスクリプトを別のフォルダにあるJavaプログラムに渡すと、頭がおかしくなりましたが、sys.argv [0]からスクリプトパスを取得することで解決しました。 – fejd

関連する問題