HTMLとアプレットの実験 |
|
|
JavaアプレットとHTMLに関するさまざまな実験を掲載しています。
|
||
|
Home > 試してみよう Java実験コーナー > Javaアプレットと HTMLの実験2
Javaアプレットと HTMLの実験2
このページには、以下のサンプルを掲載しています。
下の項目をクリックをすると各サンプルにジャンプします。
※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
Javaアプレットと HTMLの実験1では、HTMLファイルのパラメータをいろいろ変化させて実験を行いました。
今回は、Javaアプレットのソースファイルをいろいろ修正して実行してみます。まずは、修正前のHTMLファイル
とJavaソースファイルを下記に記載します。内容は、Javaアプレットと HTMLの実験1と同じです。
【実験用サンプル HTMLファイル - Sample01.html - 】
【Sample01.htmlの表示結果】
1. 実験2-1:クラス名を英小文字だけにする
下記赤字部分を変更 【テストファイル1 - test01.java - 】
【実験用サンプル HTMLファイル - test01.html - 】
【Javaコンソールエラーメッセージエラーメッセージ】 エラーメッセージありません。 【ステータスバーエラーメッセージ】 エラーメッセージありません。 【結果解説】 慣習的にクラス名は、英大文字で始まって英数字で構成されていますが、英小文字から始まってもコンパイルや実行にはなんら影響しません。ただしプログラムは見にくくなる。。。と思いますよ(^^;
2. 実験2-2:クラス名を日本語にする
下記赤字部分を変更 【テストファイル2 - テスト02.java - 】
【実験用サンプル HTMLファイル - test02.html - 】
【Javaコンソールエラーメッセージエラーメッセージ】 エラーメッセージありません。 【ステータスバーエラーメッセージ】 エラーメッセージありません。 【結果解説】 おっと。。出来ちゃうんだ。。。まさかコンパイル出来るとは思いませんでした。。。日本語のクラス名も問題なくコンパイル&実行が出来ちゃうみたいです。
3. 実験2-3:Appletクラスを継承していないクラスをアプレットとして実行する
Sample01.javaの4行目のextends JAppletを削除。Sample01.htmlから下記赤字部分を変更。 【テストファイル3 - Test03.java - 】
【実験用サンプル HTMLファイル - test03.html - 】
四角い枠だけ表示されました。 【Javaコンソールエラーメッセージエラーメッセージ】 java.lang.ClassCastException: Test03 cannot be cast to java.applet.Applet at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 例外: java.lang.ClassCastException: Sample03 cannot be cast to java.applet.Applet 【ステータスバーエラーメッセージ】 エラーメッセージありません。 【結果解説】 Javaアプレットは、Appletクラスのサブクラスでないと動作しないようですね。ClassCastExceptionが出ています。 ブラウザーのJVMがアプレットのinitメソッドやらstartメソッドを実行するのにAppletクラスにキャストしようとして 失敗したみたいですね。。。このエラーが出たらアプレットクラスのサブクラスじゃないクラスをAPPLETタグに設定してしまったのかも。。。
4. 実験2-4:publicではないAppletクラスをアプレットとして実行する
Sample01.javaの4行目のpublicを削除。Sample01.htmlから下記赤字部分を変更。 【テストファイル3 - Test03.java - 】
【実験用サンプル HTMLファイル - test04.html - 】
四角い枠だけ表示されました。 【Javaコンソールエラーメッセージエラーメッセージ】 load: Test04.class は public ではありません。あるいは public なコンストラクタを 持っていません。 java.lang.IllegalAccessException: Class sun.plugin2.applet.Plugin2Manager can not access a member of class Test04 with modifiers "" at sun.reflect.Reflection.ensureMemberAccess(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 例外: java.lang.IllegalAccessException: Class sun.plugin2.applet.Plugin2Manager can not access a member of class Test04 with modifiers "" 【ステータスバーエラーメッセージ】 エラーメッセージありません。 【結果解説】 実験3では、Appletクラスのサブクラスじゃないクラスを指定した場合でしたけど今度は、public宣言をしていないクラスを HTMLのAPPLETタグに指定した場合です。IllegalAccessException。。。不正アクセス例外ってことですかね。。 publicじゃないとブラウザ君が動かせないみたいです。 |
|
最終更新日:2019/02/13
2015-03-01からの訪問者数
707 人 |