0

ジャプレットに画像は表示されません。

  public void setCharacter(String type)
 {
  try
  {
   character = ImageIO.read(new File(type));
  }
  catch (Exception e)
  {
   e.printStackTrace();
  }
 }

それが私がファイルを取得する方法です。

public void paint(Graphics g) {
  Graphics2D g2 = (Graphics2D) g;

  g2.setBackground(Color.BLACK);

  switch (manipulateCase)
  {
   case 0:
    g2.setColor(Color.BLACK);
    g2.fill(new Rectangle(0, 0, xBound, yBound)); // painting the background.
    break;

   case 1:
    normandy.delete(g2); // delete previous position
    ImageIcon stuff = new ImageIcon("spaceship.jpg");
    stuff.paintIcon(this, g2, 0, 0);
    //g2.drawImage(normandy.getImage(), normandy.getBounds().x, normandy.getBounds().y, null); // draw new position
    break;

   /*case 2:
    for (int i = 0; i < aLevel.getInvaders().length; i++) {
     g2.fill(aLevel.getInvaders()[i].getCharacter());
    }
    break;

   case 3:
    g2.setColor(Color.WHITE);

    if (bullets.getBullets().size() > 0)
     for (int i = 0; i < bullets.getBullets().size(); i++) {
      g2.fill(bullets.getBullets().get(i).getBullet());
      System.out.println("BULLETS: "
        + bullets.getBullets().size());
     }
    break;

   case 4:
    break; */
  }

 }

上記のコードはアプレットにあります。

私は何を間違っていますか?エラーが発生するのはなぜですか。「入力ファイルを読み取れません!」

どんな助けでも大歓迎です。

ありがとう、ブラグマン

4

2 に答える 2

1

ファイルはどこにありますか? ブラウザーで実行されているアプレットは、コンピューター上のファイルを読み取ることができず、URL 経由でのみアクセスできます。リモート コンピューター上のファイルにアクセスすることはできますが、通常は (正当な理由により) 許可されていません。new ImageIcon(String filename)に置き換えnew ImageIcon(URL location)ます。

于 2011-01-24T03:39:27.807 に答える
-1

paint() メソッドをオーバーライドしてカスタム ペイントを行うべきではありません。

アプレットの作成方法の詳細については、まず Swing チュートリアルの「アプレットの作成方法」のセクションを読んでください。「アプレットへのイメージのロード」に関するセクションもあります。

また、JFrame を使用する単純なアプリケーションで練習する方が簡単にペイントを行う方法を学ぶことにも同意します。その他の例については、「カスタム ペインティング」に関する Swing チュートリアルのセクションを参照してください。チュートリアルには、優れた情報と例がたくさんあります。

于 2011-01-24T04:50:27.520 に答える