• 締切済み

appletの同時実行について

今appletで適当なアニメーションをeclipse上で作っています。 そこで質問です。 「inu」というクラスと「neko」というクラスがあり それぞれ個別ならば、appletで動かせるのですが 二つをそれぞれ別のウインドウで動かそうとしたいのですが 以下の方法では出来ませんでした。 方法 適当に「animal」クラスを作成し(これは普通のappletではないクラス) その中のmain()の中で それぞれinu,nekoのクラスをnewしてから それぞれinu.init() neko.init()をしました。 しかしアプリケーションとしてしか動きません。 それぞれのクラスを一斉に各ウインドウでappletとして動かすには いい手はあるのでしょうか?

みんなの回答

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.3

> 「addする」という意味がよくわかりませんでした; animal、いやAnimalがjava.awt.Appletならadd(new Inu())やadd(new Neko());です。Animalがjavax.swing.JAppletなら、getContentPane().add(new Inu());などです。add == 加える、という意味です。元々は、java.awt.Containerのメソッドです。 > 呼び出すのはinit()でよろしいのでしょうか? InuやNekoを動かすために必要なメソッドをすべて、正しい順で呼び出してください。 それは、 dog.init(); dog.start(); かもしれない。

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.2

animalをアプレットとして書き、アプレットとして使います。 inuとnekoはそれぞれnew()し、適当なレイアウトで、animalにadd()してください。それらのinit()は呼ばれませんから、必要な初期化処理はコンストラクタ:public inu(), public neko()の中でやるか、animalの中でそれらのiniti()を呼んでやってください。

takusoe
質問者

補足

少しわからない部分がありましたので質問させてください。 animalにadd()するとは実際どういったコードをかけばいいのでしょうか? 「addする」という意味がよくわかりませんでした;; また、呼び出すのはinit()でよろしいのでしょうか? public void init(){ inu dog = new inu(); neko cat = new neko(); //add()はよくわかりません; this.add(dog); this.add(cat); } 以上のようにして コンストラクタを作ってやりましたが・・・ アプリケーションとしてしか呼び出せませんでした。

  • OKapple
  • ベストアンサー率56% (17/30)
回答No.1

アプレットはmainクラスから起動するものではなく、ブラウザ(またはアプレットビューワー等)からinitメソッドをコールされて起動するものです。 animalクラスからアプレットのinitメソッドを呼べば、animalクラスがアプレットビューワの役目をしようとするので、animalクラスのアプリケーションとしてしか動きません。 jdkに付属しているアプレットビューワからそれぞれのクラスを呼び出せば、それぞれ独立して動作します。 もしくは、アプレットを呼び出すhtmlを作成し、ブラウザで表示させることで動作します。

takusoe
質問者

補足

よろしければお願いします;; 一応ブラウザからinu,nekoのクラスを二つ同時に呼び出すのは できそうなのですが、ひとつのanimalクラスの中から 二つを呼び出せる方法があるかを調べてます。 やっても確かにアプリケーションビューワとしてしか動きません。。 animalクラスからやる方法は無さそうでしょうか?

関連するQ&A