みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Appletが動きません・・・

こんにちは。今日Javaを学び始めた超初心者です。

-HelloApplet.java--------------------------
import java.awt.Graphics;
import java.applet.Applet;

class HelloApplet extends Applet{
public void paint(Graphics g){
g.drawString("Hello World", 50,25);
}
}
-------------------------------------------

で、これをコンパイルしてHTMLに組み込み、Appletviewerで見てみるのですが、
以下のようなメッセージが出ます。

----------------------------------------------
C:\java>appletviewer hello.html
load: HelloApplet.class は public ではありません。あるいは public なコンストラク
タを持っていません。
java.lang.IllegalAccessException: Class sun.applet.AppletPanel can not access a
member of class HelloApplet with modifiers ""
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:57)
at java.lang.Class.newInstance0(Class.java:302)
at java.lang.Class.newInstance0(Class.java:302)
at java.lang.Class.newInstance(Class.java:261)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:617)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:546)
at sun.applet.AppletPanel.run(AppletPanel.java:298)
at java.lang.Thread.run(Thread.java:534)
----------------------------------------------

HTMLを開くと赤い「×」が出ています。

環境ですが、
CLASSPATH:C:\j2sdk1.4.2_04\lib\tools.jar;.;c:\java
PATH:C:\WINDOWS;C:\WINDOWS\COMMAND;C:\j2sdk1.4.2_04\bin
作業フォルダ: c:\java

となっています。
おかしいところはないと思うのですけど・・・。
宜しくお願い致します。

投稿日時 - 2004-05-20 21:06:42

QNo.865220

困ってます

質問者が選んだベストアンサー

エラーメッセージが出たらちゃんとそれに従うことですよ。

> HelloApplet.class は public ではありません。あるいは public なコンストラクタを持っていません。

HelloApplet クラスがパブリックになっていないのがいけないと言っています。実際にソースを見てみると、

> class HelloApplet extends Applet{

となっていて、確かにパブリックではありません。ならば、パブリックにすればいいだけのことです。具体的には、以下のように訂正すればよいでしょう。

public class HelloApplet extends Applet {

ところで、

> 今日Javaを学び始めた超初心者です。

「超」が付くほどの初心者ではないと思うのですが。質問文も必要な情報がちゃんと書かれていて読みやすいです。的確な質問が出来るということは、それだけスキルがあるということですからね。

投稿日時 - 2004-05-20 21:32:51

お礼

動きました!ありがとうございます!
昨日の勉強でようやくpublicとprivateのことを学びました^^;

HTMLから呼び出す時にpublicになっていないと呼び出せないということでしょうか??

> 質問文も必要な情報がちゃんと書かれていて読みやすいです。

ありがとうございます。
ちょっと読んだだけですが、初心者がぶち当たるのはだいたい環境変数かJava特有の概念だという感じだと思ったので・・・。

投稿日時 - 2004-05-21 10:13:55

ANo.2

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

-HelloApplet.java--------------------------
import java.awt.Graphics;
import java.applet.Applet;

class HelloApplet extends Applet{
public void paint(Graphics g){
g.drawString("Hello World", 50,25);
}
}
-------------------------------------------



class HelloApplet extends Applet{



public class HelloApplet extends Applet{

と書いてコンパイルしなおして、後は同じように
実行してみてください。動かなかったらごめんなさい。

投稿日時 - 2004-05-20 21:22:22

お礼

ありがとうございます<(_ _)>
具体的な内容は#2さんですね。

投稿日時 - 2004-05-21 10:06:01