Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

画像を読み込むアプレット

import java.awt.*;
import javax.swing.*;

public class ex16_3 extends JApplet
{
    public void paint(Graphics g)
    {
        String str=getParameter("STR");           //引数から文字列を得る
        Image img=getImage(getCodeBase(), "STR2");//引数から画像を得る

        g.drawString(str, 10, 10);                      //文字列を表示する
        g.drawImage(img, 50, 100, this);        //画像Image.gifを表示する
    }
}

<html>
<head>
<title>Program</title>
</head>
<body>
アプレット
<hr>
<applet code="ex16_3.class" width=400 height=400>
<param name="STR" value="知と技のデザイン工房">
<param name="STR2" value="./image/Image.gif">
</applet>
</body>
</html>

Image.gifはHTMLと同じディレクトリあるディレクトリ「image」直下にあります

HTMLファイルから画像を渡さないといけないのですが、上記プログラムだと画像が渡されません。getImage()で直接画像ファイルを指定した場合は表示できました。どこがまちがっているのかわかりません。HTMLの質問になってしまうかもしれませんが、教えていただけないでしょうか?

3

回答

2747

閲覧

3件の回答

評価

0

メインエラー:
これでは、STR2という名前のファイルを読み込もうとする。だめ。

ついでに:
paint()をオーバライドするなら、JAppletではなくAppletを使うこと。

どうしてもJAppletを使う必要があるのなら、何かのパネルを作って、それをアプレットのcontentPaneにadd()するのが常道。

クラス名は大文字で開始する。
意味のある名前が望ましい。

評価

0

paint()は何度でも呼ばれるんだから、毎回やらんでもいい処理を全部書く必要はない。

評価

0

>paint()をオーバライドするなら、JAppletではなくAppletを使うこと。
>paint()は何度でも呼ばれるんだから、毎回やらんでもいい処理を全部書く必要はない。

import java.awt.*;
import java.applet.Applet;

public class Imageprint extends Applet
{
    Image img;
    String str;

    public void init()
    {
        img=getImage(getDocumentBase(), "image/Image.gif");
        str=getParameter("STR1");

    }

    public void paint(Graphics g)
    {
        g.drawImage(img,150,100,this);
        g.setFont(new Font("Meirio", Font.BOLD, 24));
        g.drawString(str, 150, 200);
    }
}


<html>
<head>
<title>Program</title>
</head>
<body>
アプレット
<hr>
<applet code="Imageprint.class" width=400 height=400>
<param name="STR" value="知と技のデザイン工房">
<param name="STR2" value="image/Image.gif"valuetype="ref" type="image/gif">
</applet>
</body>
</html>

このプログラムで画像表示は可能でしたが、HTML内のSTR2を用いて画像を表示させることはできないでしょうか?

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。