0

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

    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();
    }
}

これらの変更を行った後、それは機能しました。ご協力いただきありがとうございます。

4

2 に答える 2

2
  1. setSize()アプレットを呼び出さないでください。サイズは HTML で設定します。
  2. このミレニアムでは、AWT でコーディングしないでください。
  3. Swing コンポーネントに渡されるオブジェクトはオブジェクトであるべきですがGraphics2DApplet. Java コンソールを確認していますか?
  4. そのコードには、いくつかの冗長なインポートがあります。
  5. メソッドで、paint画像が であるかどうかを確認しますnull
  6. getImage(URL,String)メソッドのJavaDocsには、「このメソッドは、画像が存在するかどうかにかかわらず、常にすぐに返されます。」 a を追加するMediaTrackerか、3千年紀に参加してImageIO.read(URL)- を使用します。これは、イメージが読み込まれるまでブロックします。

ポイント 6 を修正すれば問題は解決すると思いますが、他の 5 つのポイントにも注意してください。

于 2011-09-09T16:06:32.080 に答える
0

これを追加

public void update(Graphcs g) {
    repaint();
}
于 2011-09-09T15:56:37.333 に答える