2011-09-09 7 views
0

以下は、単一の画像を表示するための簡単なアプレットの書き出しです。コードは正常にコンパイルされ、アプレットはロードされますが、イメージファイルは決してアプレットに描画されません。私はそれがthis.getImage(appletBaseURL、ファイル名)を使用してイメージを見つけることができないと思っています。このパッケージに関連付けられているすべてのフォルダにイメージファイルが保存されていますが、イメージファイルはまだ描画されていません。Javaアプレットでの画像の表示のヘルプ

import java.applet.Applet; 
    import java.awt.Graphics; 
    import java.awt.Graphics2D; 
    import java.awt.Image; 
    import java.io.File; 
    import java.io.IOException; 
    import java.util.logging.Level; 
    import java.util.logging.Logger; 
    import javax.imageio.ImageIO; 


    public class imageTest extends Applet { 

    private Image spaceShip;  
    private final String filename = "spaceshipcropped.jpg";   
    public void init() { 

     java.net.URL appletBaseURL = getCodeBase(); 
     File file = new File("spaceshipcropped.jpg"); 
     try { 
      spaceShip = ImageIO.read(file); 
     } catch (IOException ex) { 
      Logger.getLogger(imageTest.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

    public void paint(Graphics g) 
    { 
     Graphics2D g2d = (Graphics2D)g;  
     g2d.drawImage(spaceShip, 0,0, null); 
    } 

    public void update(Graphics g) { 
     repaint(); 
    } 
} 

私はこれらの変更を行った後、あなたのお手伝いをしてくれてありがとう!

+0

アプレットは開発やデプロイメントが簡単ではありません。あなたの理解の段階で、私は彼らのことを明らかにするよう助言するでしょう。 –

答えて

0

はアプレットでsetSize()を呼び出さないでください。この

public void update(Graphcs g) { 
    repaint(); 
} 
+0

私はそれをpaintメソッドの直後のメソッドとして追加しましたが、それは変更されませんでした。アプレットはまだ空白の灰色の画面をポップアップ表示します。 – user519670

2
  1. を追加します。サイズはHTMLで設定されます。
  2. AWTでこの千年をコーディングしないでください。
  3. スウィングコンポーネントに渡されるオブジェクトはGraphics2Dオブジェクトである必要がありますが、私はAppletと同じことは聞いたことがありません。あなたはJavaコンソールをチェックしていますか?
  4. そのコードには冗長なインポートがいくつかあります。
  5. paintメソッドでは、画像がnullであるかどうかを確認します。
  6. getImage(URL,String)のJavaDocsメソッドの状態"このメソッドは、イメージが存在するかどうかにかかわらず、常にすぐに戻ります。"MediaTrackerを追加するか、3千年紀に参加してImageIO.read(URL)を使用してください。画像が読み込まれるまでブロックされます。

固定ポイント6は問題を解決しますが、他の5つのポイントにも関わると思います。

+0

私にこれを撃つことができます。 – user519670

+0

ok so added私は を試してみてください{ spaceShip = ImageIO.read(appletBaseURL); } catch(IOException ex){ Logger.getLogger(imageTest.class.getName())。log(Level.SEVERE、null、ex); } のinitメソッドです。以前のgetImage(url、string)呼び出しを削除しました。まだ画像を表示していません。あなたがここで言及した他のものを修正する作業。その他の提案はありますか? – user519670

+1

* "他の提案はありますか?" * 1)他の5点への参加を完了してください。 2)変更されたコードをコメントとして追加するのではなく、編集として質問に追加します。 –

関連する問題