アプリ版:「スタンプのみでお礼する」機能のリリースについて

とあるサイトからJDK1.3と次のようなサンプルソースを
入手しました。
-------------------------------------------------
import java.awt.Frame;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.*;

public class GeomLine extends Frame {

public GeomLine() {
super("Geometry Test");
}

public void paint(Graphics g) {
// Graphics2Dの取得
Graphics2D g2 = (Graphics2D)g;
// 描画図形の決定
Shape s = new Line2D.Float(10.0f, 50.0f,
90.0f, 150.0f);
// アウトラインの描画
g2.draw(s);
}
public static void main(String[] args) {
Frame f = new GeomLine();
f.setSize(100,200);
f.setVisible(true);
}
}
-------------------------------------------------
以上のようなサンプルソースをJKD1.3でコンパイルを行い、
appletviewerで上ソースをコンパイルしたclassファイルを
コールしているHTML文を動かしてみたところ、以下のような
メッセージが出てしまい、アプレットウィンドウは表示された
ものの何も空白のウィンドウになってしまいました。
-------------------------------------------------
C:\JAVA_S~1\ex2>appletviewer ex02.htm
java.lang.ClassCastException: GeomLine
at sun.applet.AppletPanel.createApplet(AppletPanel.java:579)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:515)
at sun.applet.AppletPanel.run(AppletPanel.java:293)
at java.lang.Thread.run(Thread.java:484)
-------------------------------------------------
上記エラーを解消するにはどのようにしたらよろしいのでしょうか?

A 回答 (2件)

public static void main(String[] args)で始まるものはアプレットではなくアプリケーションです。


アプリケーションをappletviewerで見ようとしてもおそらく見ることができないと思います。
MS-DOSからコマンドをたたいて実行されているなら

アプレット(appletviewer)の実行→appletviewer HTMLファイル名
アプリケーションとしての実行  →java クラス名

となります。参考URLにアプレットとアプリケーションのコードについて説明がありますので
よろしかったら参考にご覧下さいませ。

参考URL:http://www.gimlay.org/~andoh/hatena/java/S002.ht …
    • good
    • 0

GeomLine を Frame にキャストできないよ、といっているように見えます。



あまり自信はないのですが、mainメソッドの1行目を
GeomLine f = new GeomLine();
に変えると例外は出なくなりますかね?

この回答への補足

ご回答ありがとうございます。
ご指摘の通り私の方で再度やってみたのですが、
メッセージは以前のままで改善されてないようでした。
自分もjavaの初心者なので、あまり詳しいところまで
わかりませんが、ヘッダ上にあるimportするパッケージが
無い場合とか不正である場合にはこのようなメッセージは
表示されるものなのでしょうか?

補足日時:2001/01/05 13:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!