プロが教えるわが家の防犯対策術!

こんにちは。今日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

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

A 回答 (2件)

-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{

と書いてコンパイルしなおして、後は同じように
実行してみてください。動かなかったらごめんなさい。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/05/21 10:06

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



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

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

> class HelloApplet extends Applet{

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

public class HelloApplet extends Applet {

ところで、

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

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

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

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

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

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

お礼日時:2004/05/21 10:13

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