• ベストアンサー

アプレットのプログラムがコンパイルできません。

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("")); ^ という、エラーが出ます。 なぜコンパイル出来ないのか、わかる方がいましたら お返事お願いいたします。

  • Java
  • 回答数6
  • ありがとう数7

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

  • ベストアンサー
  • davosuke
  • ベストアンサー率61% (34/55)
回答No.4

(1)Lesson1.javaのソースにおいてpackage文がありませんか??(ファイルの先頭付近にあるとおもいますが、) あるのでしたら、 package hoge1.hoge2;となっていたら(hoge1.hogeは任意です) Lesson1Applet.java上で import hoge1.hoge2.Lession1; のように追加してください。 (2)package文がない場合はLesson1Appletクラスと同様にデフォルトのパッケージですので、問題ないと思いますが・・・・ ) (3)あとは、クラスパスを通してください。

h_a0619
質問者

お礼

回答ありがとうございます。 パッケージ文はなかったので、クラスパスを通したところ コンパイルすることが出来ました。 HTMLで表示したところ、サンプル通りにGUIが表示され 満足する結果が得られました。 クラスの概念がより理解でき、成長することが出来ました。

その他の回答 (5)

  • davosuke
  • ベストアンサー率61% (34/55)
回答No.6

>本の通りに作ってみたのですが、 とありましたが、参考書だけでなく 優良なサイトがありますので、 そちらを参考にしてもよいかと思います。 (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で検索してみてください

h_a0619
質問者

お礼

回答ありがとうございます。 初心者の私には大変助かります。 これらを参考に頑張りたいと思います。 また、お世話になるかと思いますが、そのときも宜しくお願いいたします。

  • tekebon
  • ベストアンサー率62% (36/58)
回答No.5

クラスをたくさん作っていくと同じ名前のクラスを作ってしまう可能性があります。 そこで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」ということになってしまい、 じっさいにはそんなクラスは作成していない(ハズ)なので 「シンボルを解決できません」というエラーが出てしまうことになります

h_a0619
質問者

お礼

回答ありがとうございます。 importやパッケージの意味の違いが理解できました。

  • davosuke
  • ベストアンサー率61% (34/55)
回答No.3

(1)Lesson1クラスが作成されいない (3)Lesson1クラスがimportされていません。 (2)クラスパス内にLesson1クラスない。 のいずれかだと思います。

h_a0619
質問者

お礼

回答ありがとうございます。

h_a0619
質問者

補足

このプログラム作成の前に、Lesson1というクラスを 作成しコンパイルできました。 次にWEB上でも使用できるように、アプレットに変換する。 というのがあり、上記のプログラムを作成したのですがコンパイルが出来ませんでした。 (1)は解決していると思うので、(2)(3)を検討したいと思います。 新たに質問なのですが、importするというのはどういう事なのでしょうか。 知識不足で分からないです。 今まで、正式名称を省略するためにimportがあると 思っていたので。

  • tekebon
  • ベストアンサー率62% (36/58)
回答No.2

エラー自体は「new Lesson1("")」のLesson1という クラスが存在しないということのようです。 GUIアプリケーションとして作った「Lesson1」として 作成されたサンプルがあるのかもしれません。 本の前の方にそんなサンプルがないか探してみてくだ さい。

h_a0619
質問者

お礼

回答ありがとうございました。

h_a0619
質問者

補足

前のページにLesson1というクラスを作成するというのがあり、コンパイルは出来ました。 次にWEB上で動かすため、アプレットに変換するための 上記のプログラムを作成しなさいとあって、 作ってみたのですがコンパイルが出来ませんでした。

  • gonic
  • ベストアンサー率30% (18/59)
回答No.1

Lesson1というクラスが見つからないからです。 Lesson1を作ってください。

h_a0619
質問者

お礼

回答ありがとうございます。

関連するQ&A

  • アプレットでスクロールバーを作りたいがコンパイルエラーが出る。

    アプレットでスクロールバーを作ろうと思っています。下記のコードをコンパイルすると 「import java.applet.Applet;abstract として宣言する必要があります。」とコンパイルエラーになります。いろいろ調べましたが原因がわかりません。なぜこのようなことが生じるのでしょうか? import java.awt.*; import java.awt.event.*; public class testScroll extends Applet implements AdjustmentListener{ Scrollbar sbar; public void init(){ setLayout(new BorderLayout()); sbar=new Scrollbar(Scrollbar.HORIZONTAL,1,10,1,300); add("South",sbar); sbar.addAdjustmentListener(this); } public void paint(Graphics g){ g.setColor(Color.gray); g.fillRect(0,0,350,150); } public void adjustmentValueCanged(AdjustmentEvent e){ if(e.getAdjustable()==sbar){ repaint(); } } } ■C:\**> javac testScroll.java testScroll.java:7: testScroll は abstract として宣言する必要があります。 adjustmentValueChanged(java.awt.event.AdjustmentEvent) を testScroll で定義しません。 public class testScroll extends Applet implements AdjustmentListener{ ^ エラー 1 個

    • ベストアンサー
    • Java
  • コンパイルができません…

    プログラムは以下のようになってます。 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TEST extends InternalFrame implements ActionListener{    ---- 中略 ---- JPanel p = new JPanel(); p.setLayout(new GridLayout(x,y));    ---- 後略 ---- } コンパイルすると、次のようなエラーが出力されます。 シンボルを解決できません。 クラス GridLayout p.setLayout(new GridLayout(x,y));            ^ コンパイルができない理由が分かる方居られましたら、 ご教授願いたく存じます。 できれば、早急にお願いいたします。

    • ベストアンサー
    • Java
  • コンパイル時のエラーの件

    html上にJavaを表示させようとして、いちばん簡単なプログラム以下を作りました import java.applet.Applet; import java.awt.Graphics; public class hello extends Applet { public void paint (Graphics g ) { g.drawsString ("Hello Java Applet !",20,20); } } その後コンパイルしようとしたのですが、次のようなエラーメッセージが現れました。(特に.awtというのが全くわからないのです。) hello.java:1: シンボルを解釈処理できません。 シンボル: クラス applet 位置 : java の クラス import java.applet.applet; ^ hello.java:2: シンボルを解釈処理できません。 シンボル: クラス awt 位置 : java の クラス import java.awt.graphics; ^ hello.java:4: シンボルを解釈処理できません。 シンボル: クラス applet 位置 : hello の クラス public class hello extends applet { ^ hello.java:5: シンボルを解釈処理できません。 シンボル: クラス graphics 位置 : hello の クラス public void paint (graphics g ) { ^ なにか設定などがおかしいのでしょうか?教えてください。

    • ベストアンサー
    • Java
  • コンパイルエラーの対応

    下記のプログラムをコンパイルしたらエラーが発生しました。 プログラム自体は本をそのまま書き写したのですが、何がいけないのでしょう。 教えてください。よろしくお願いします。 Javaのバージョンは1.3.1です import java.applet.*; import java.awt.*; import java.awt.event.*; public class sample3 extends Applet implements ActionListener { Button bt; public void init() { bt = new Button("押します!"); bt.addActionListener(this); add(bt); } public void actionperformed(ActionEvent ae) { bt.setLabel("押しました!"); } } -----------------エラー内容----------------------- sample3.java:4: sample3 は abstract として宣言する必要があります。 actionPerformed(java.awt.event.ActionEvent) を sample3 で定義しません。 public class sample3 extends Applet implements ActionListener ^

    • ベストアンサー
    • Java
  • アプレットと自作パッケージのimportについて

    以下のような、アプレットのプログラムを作ったのですが、コンパイルは通るのですが、アプレットの初期化のところで止まってしまいます。理由と解決策を教えてください。 javac dev_java\TargetApplet\*.java ← これはOK appletviewer dev_java\TargetApplet\TargetApplet.java ←init() で止まる。 (ソース一部抜粋) package dev_java.TargetApplet ; import java.applet.* ; import java.awt.* ; import java.awt.event.* ; import dev_java.Target.* ;  // 自作のpackage /* <applet code="TargetApplet" width=500 height=400> </applet> */ public class TargetApplet extends Applet implements ActionListener, TextListener{ TextField Word ; TextField Mean ; TextArea Result ; Button Search ; Button Entry ; EnglishDictionary ed ; /* 自作package dev_java.Target で宣言されているクラス*/ public void init() { Word = new TextField(20) ; Mean = new TextField(20) ; Search = new Button("Search") ; Entry = new Button("Entry") ; Result = new TextArea(20,40) ; Word.addActionListener(this) ; Word.addTextListener(this) ; Mean.addActionListener(this) ; Mean.addTextListener(this) ; Search.addActionListener(this) ; Entry.addActionListener(this) ; // EnglishDictionary ed = new EnglishDictionary("dic/Target1900.dic") ; this.add(Word) ; this.add(Mean) ; this.add(Search) ; this.add(Entry) ; this.add(Result) ; } }

    • ベストアンサー
    • Java
  • 動作しないプログラム

    このようなプログラムです。 /*<applet code = "Lesson14.class" width = 300 height =200></applet>*/ import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class Lesson14 extends Applet{ Button myBtn; Label mylbl; public void init(){ setBackground(Color.pink); setLayout(new BorderLayout()); myBtn = new Button("Clickしてね"); mylbl = new Label("",Label.CENTER); add("North",myBtn); add("Center",mylbl); myBtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ repaint(); } }); } public void paint(Graphics g){ mylbl.setText("clickしたな!"); } } ---------------------------------------- はじめにmylblに””と何も入れておかずに、 後からsetTextで、文字をいれ、クリックされたときにrepaint()にて、表示される、という単純なものです。 しかし動作しないのです。 書籍を見ながらやったほうも、CDーROM殻読み出したものもだめでした。 僕の動作環境は1.4.1_03でXPと2000です。 その書籍は少し古くて1.3.0と書いてあります。 バージョンアップによってうまく動作しないのでしょうか・・・??

    • ベストアンサー
    • Java
  • アプレットでボタンを押したときの処理について質問です。

    JAVAで2つのクラスを作成しました。 1つは初期画面で「入力」「検索」等と言ったボタンを持ち、ボタンを押されると別の画面に切り替えるクラスです。もう1つは初期画面で「入力ボタン」を押されて表示する画面のクラスです。 初期画面でボタンが押されたときの処理を次のようにしました。 public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if (command.equals("入力")){ Input input = new Input(); } ですが、Inputクラスの画面が表示されません。 Inputクラスのソースは import java.awt.*; import java.awt.event.*; import java.applet.*; /* <applet code="Input" width=250 height=250> </applet> */ public class Input extends Applet { Panel panel; TextArea textarea; public void init()//部品を初期化する { panel = new Panel(); textarea = new TextArea(); setLayout(new BorderLayout()); add(textarea,BorderLayout.CENTER); add(panel,BorderLayout.SOUTH); } } です。ボタンを押された時のイベントを受け取るまでの処理は正しいと思うのですが、どのように改良すればよろしいでしょうか?

    • ベストアンサー
    • Java
  • Javaアプレットについてですが

    Javaアプレットでボタンを押したら数字が増えるものを作っているのですがどうもうまく動きません。 ソースは下の通りです。 変更しなければいけないところがあるならお願いします。 import java.applet.Applet; import java.awt.Graphics; import java.awt.Button; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class Sample7 extends Applet implements Runnable, ActionListener { Button bt; int num; public void init() { bt = new Button("開始"); add(bt); bt.addActionListener(this); Thread th; th = new Thread(this); th.start(); } public void actionPerformed(ActionEvent ae) { public void run() { try{ for(int i=0; i<11; i++){ num = i; repaint(); Thread.sleep(1000); } } catch(InterruptedException e){} } } public void paint(Graphics g) { String str = num + "です。"; g.drawString(str, 50, 50); } }

    • ベストアンサー
    • Java
  • java アプレット

    学校の授業でアプレットを学んでいます。 しかし・・・ 下のプログラムで、計算した結果をlabel3にはりつけたいのですが、計算結果がでてくれません・・・ボタンを押しても何もでてきません。 コマンドプロンプトで、エラーはでてきません。 お手数ですが、誰かどこがいけないのか教えて下さい。 import java.awt.*; import java.awt.event.*; public class B extends java.applet.Applet implements ActionListener { Label label3 = new Label(); Button button2 = new Button(); TextField textfield1= new TextField(10); TextField textfield2= new TextField(10); public void init() { button2.setLabel("入力したらクリック!"); button2.setBounds(new Rectangle(50, 465, 120, 20)); this.setLayout(null); label3.setBackground(Color.blue); label3.setBounds(new Rectangle(325, 80, 200, 35)); textfield1.setBounds(100, 425, 100, 25); textfield2.setBounds(150, 350, 100, 25); this.add(textfield2, null); this.add(label3, null); this.add(textfield1, null); this.add(button2, null);} public void actionPerformed(ActionEvent event) {if(event.getSource() == button2) {int diff = Integer.parseInt(textfield1.getText()) - Integer.parseInt(textfield2.getText()); String otsuri; otsuri ="お釣りは"+ diff +"円です。"; label3.setText(otsuri);} }} よろしくお願いします。

    • ベストアンサー
    • Java
  • javaにおいてコンパイルをすると次のようなエラーが出てきます。

    javaにおいてコンパイルをすると次のようなエラーが出てきます。 力不足で解決することができません。 どうか力を貸してください。 エラーは以下のように出てきます。 よろしくお願いします。 シンボルがみつかりません シンボル: コンストラクタ DrawPanelMouseHandler(DrawPanel) 場所 : DrawPanelMouseHandler の クラス mouseHandler = new DrawPanelMouseHandler(this); mouseHandler = new DrawPanelMouseHandler(this);import java.awt.*; import java.util.ArrayList; import javax.swing.JPanel; import javax.swing.JButton; public class DrawPanel extends JPanel { ArrayList<Shape> shapeList = new ArrayList<Shape>(); DrawPanelMouseHandler mouseHandler; public void paintComponent(Graphics g) { super.paintComponent(g); for(Shape shape: shapeList){ shape.draw(g); } } public DrawPanel(){ mouseHandler = new DrawPanelMouseHandler(this); this.addMouseListener(mouseHandler); this.addMouseMotionListener(mouseHandler); ShapeFactory circleFactory = new CircleFactory(); UIToolButton circleButton = new UIToolButton(circleFactory, this, "Circle"); this.add(circleButton); } public void addShape(Shape s) { shapeList.add(s); repaint(); } } import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class UIToolButton extends JButton implements ActionListener{ DrawPanelMouseHandler mouseHandler; ShapeFactory factory; public UIToolButton(ShapeFactory factory, DrawPanelMouseHandler mouseHandler, String text) { super(text); this.addActionListener(this); this.mouseHandler = mouseHandler; this.factory = factory; } public void actionPerformed (ActionEvent ae) { mouseHandler.setShapeFactory(factory); } }

専門家に質問してみよう