javaアプレットで二つのスレッドを作り、それぞれからパラパラアニメ(0.4秒間隔で絵が変わるものanime1と0.7秒のものanime2)を表示させたいと考えています。
パラパラアニメ本体はhttp://www.ipc.hokusei.ac.jp/~z00104/java/anim.h …をほぼコピーで使わせてもらい、それ単体では動かせました。
しかし二つスレッドを作るためにRunnableを実装したクラスを二つ用意して、それをまた別の一つのクラスから呼び出すことがうまくできません。
public class oshietegoo extends Applet{
anime1 aa = new anime1();
anime2 bb = new anime2();
Thread a = new Thread(aa);
Thread b = new Thread(bb);
a.start();
b.start();
//(スレッドの作成についてはhttp://www.tohoho-web.com/java/thread.htmを参考にしました)
}
class anime1 extends Applet implements Runnable{
【中身は最初のURLのコピー】
}
class anime2 extends Applet implements Runnable{
【中身は最初URLのコピー】
}
というように書いているのですが、a.start();とb.start();のところで「トークン "start" に構文エラーがあります。このトークンの後には Identifier を指定する必要があります」とエラーが出てしまいます。
色々と調べたり、インスタンスやクラスなど基本的な概念を勉強したりしたつもりなのですが、なぜエラーが出るのか分かりませんでした……。
どなたか解決法を教えていただけませんでしょうか?
初心者な質問で申し訳ないのですが、お力添えいただけると助かります。
不足があれば追記いたしますので、よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
見たところ、アプレットであるanime1、anime2をnewして動かそうとしていますね。
これが原因でしょう。アプレットは、newして動かすものではありません。なぜなら、アプレットのインスタンスを作成し実行するのは、それが組み込まれているブラウザの仕事だからです。アプレットのプログラムを書いているなら、作ったアプレットをnewする処理がないことに気づいたはずです。アプレットは、プログラマが自身のプログラム内でnewするのではなく、ブラウザによってページロード時にnewされます。
ですから、アプレット内から別のアプレットをnewして表示するという考え方自体が根本的に間違っています。
表示しているアプレットの中にアニメを表示させたいのであれば、それらはアプレットである必要はありませんね。そのアプレット内に描画の処理を用意しておけばよいだけですから。
また、表示しているアプレットとは別のところにアプレットを新たにはめ込んで表示させたい、というのであれば、これはJavaではなく、ブラウザに表示されているHTML部分の問題です。JavaScriptなどでDOMを操作して実現することになるでしょう。
なるほど!!本当に根本的なことだったのですね、スッキリしました。
普通のJavaとJavaアプレットを同じ感覚でとらえていてはいけませんね。Java自体初めてなのですが、理解があいまいなままアプレットも触り始めているので、変にごっちゃになっているようで恥ずかしいです。
アプレット内に描画の処理を用意する……というのは一度やってみたのですが、0.4秒毎アニメと0.7秒毎アニメを二つ並べて表示するには、sleepをrepaintをどれだけにすればどうすれば……ウワーー!と発狂してこんな凶行に至ってしまいました。
とりあえずもう一度good-failureさんの言葉を思い出しながら作ってみて、難しければ目標を変えるか、また質問するかさせていただきたいと思います。
ずっと悩んでいたので本当にすっきりしました、ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 工学 ちなみになぜv=(v・e1)e1+(v・e2)e2はe1やe2が、正規直交基底でないと成り立たないと 2 2022/12/22 17:22
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- Excel(エクセル) 条件付き書式の色付きセルのカウント方法について 2 2022/10/21 14:51
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- C言語・C++・C# クラスのメンバ変数を基準に並べ替えをしたい 5 2022/12/25 17:40
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
unzip32.dllの利用について(64b...
-
Javaでのエラーについて
-
gitでバージョン指定してダウン...
-
Pythonを勉強する道のり
-
MSFormsとは何ですか?
-
EclipseでJavaコンパイラのバー...
-
JSFで、マネージビーンに画面の...
-
JSPファイルで生じるエラーをど...
-
javacのコンパイルでファイルが...
-
javaからデータベースに接続 エ...
-
「2次方程式ax2+bx+c=0の係数を...
-
データベースのデータをTextBox...
-
スキル高めのIT技術者になぜ左...
-
Eclipseソース開発画面の行番号...
-
How to import HorizontalGridV...
-
windowsの構造体にはなぜ自身の...
-
Lex,Yaccについて。
-
javaのジェネリックスでTとEの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
VBのWPFとはなんでしょうか?
-
unzip32.dllの利用について(64b...
-
プラグインとパッチの違いは?
-
意味が分からないエラー
-
帳票出力について
-
java3dが動かない
-
32ビットのアプリで、64ビットO...
-
ASP(VB).NETでの背景色変更
-
ログオフ中でもアプリケーショ...
-
C#のメモリマップドファイルに...
-
AccessとVBの違いについて
-
Java でネイティブアプリケーシ...
-
このVBAでExcelアプリケーショ...
-
HTMLアプリケーションの作成
-
[VB.2005]クライアントからWEB...
-
C++からC#へ
-
JAVAプログラムをWEB表示させる...
-
SurfaceViewの一時停止や再開方法
おすすめ情報