- ベストアンサー
アプレットのプログラムがコンパイルできません。
import java.applet.Applet; import java.awt.*; public class Lesson1Applet extends Applet { public void init(){ this.add(new Lesson1("")); this.setLayout(null); this.resize(600,450); } } 上記のプログラムがコンパイルできません。 本の通りに作ってみたのですが、コンパイルが出来ず Servlet1118Applet.java:7: シンボルを解決できません。 シンボル: クラス Lesson1 場所 : Lesson1Applet の クラス this.add(new Lesson1("")); ^ という、エラーが出ます。 なぜコンパイル出来ないのか、わかる方がいましたら お返事お願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
(1)Lesson1.javaのソースにおいてpackage文がありませんか??(ファイルの先頭付近にあるとおもいますが、) あるのでしたら、 package hoge1.hoge2;となっていたら(hoge1.hogeは任意です) Lesson1Applet.java上で import hoge1.hoge2.Lession1; のように追加してください。 (2)package文がない場合はLesson1Appletクラスと同様にデフォルトのパッケージですので、問題ないと思いますが・・・・ ) (3)あとは、クラスパスを通してください。
その他の回答 (5)
- davosuke
- ベストアンサー率61% (34/55)
>本の通りに作ってみたのですが、 とありましたが、参考書だけでなく 優良なサイトがありますので、 そちらを参考にしてもよいかと思います。 (1)JavaでHollowWorld http://www.hellohiro.com/ (2)Javaの道 http://www.javaroad.jp/ (3)JavaHouse http://java-house.jp/ml/ (1)簡単なProgamができます。 (2)文法やリファレンスが理解できます。 (3)泣きそうになったら、 JavaHouseで検索してみてください
お礼
回答ありがとうございます。 初心者の私には大変助かります。 これらを参考に頑張りたいと思います。 また、お世話になるかと思いますが、そのときも宜しくお願いいたします。
- tekebon
- ベストアンサー率62% (36/58)
クラスをたくさん作っていくと同じ名前のクラスを作ってしまう可能性があります。 そこでJavaではパッケージ名を指定し区別できるようになっています。 (たとえばJ2SEには「java.awt.List」と「java.util.List」という同じListがありますが、 パッケージが異なるため別のクラスと認識されます) この長い書き方を完全なクラス名といいます。 ですので、プログラムとして以下のように書きます。 java.awt.List objList = java.awt.List(); これに対し、 import java.awt.List; とすることで List objList = List(); と書いても良いことになります。 このときimportの記述をしなかった場合には、 完全なクラス名が「List」ということになってしまい、 じっさいにはそんなクラスは作成していない(ハズ)なので 「シンボルを解決できません」というエラーが出てしまうことになります
お礼
回答ありがとうございます。 importやパッケージの意味の違いが理解できました。
- davosuke
- ベストアンサー率61% (34/55)
(1)Lesson1クラスが作成されいない (3)Lesson1クラスがimportされていません。 (2)クラスパス内にLesson1クラスない。 のいずれかだと思います。
お礼
回答ありがとうございます。
補足
このプログラム作成の前に、Lesson1というクラスを 作成しコンパイルできました。 次にWEB上でも使用できるように、アプレットに変換する。 というのがあり、上記のプログラムを作成したのですがコンパイルが出来ませんでした。 (1)は解決していると思うので、(2)(3)を検討したいと思います。 新たに質問なのですが、importするというのはどういう事なのでしょうか。 知識不足で分からないです。 今まで、正式名称を省略するためにimportがあると 思っていたので。
- tekebon
- ベストアンサー率62% (36/58)
エラー自体は「new Lesson1("")」のLesson1という クラスが存在しないということのようです。 GUIアプリケーションとして作った「Lesson1」として 作成されたサンプルがあるのかもしれません。 本の前の方にそんなサンプルがないか探してみてくだ さい。
お礼
回答ありがとうございました。
補足
前のページにLesson1というクラスを作成するというのがあり、コンパイルは出来ました。 次にWEB上で動かすため、アプレットに変換するための 上記のプログラムを作成しなさいとあって、 作ってみたのですがコンパイルが出来ませんでした。
- gonic
- ベストアンサー率30% (18/59)
Lesson1というクラスが見つからないからです。 Lesson1を作ってください。
お礼
回答ありがとうございます。
お礼
回答ありがとうございます。 パッケージ文はなかったので、クラスパスを通したところ コンパイルすることが出来ました。 HTMLで表示したところ、サンプル通りにGUIが表示され 満足する結果が得られました。 クラスの概念がより理解でき、成長することが出来ました。