HTMLとアプレットの実験 ---スマホ対応版---

JavaアプレットとHTMLに関するさまざまな実験を掲載しています。
- Page 1 -
  先頭のページ
  前のページ
  次のページ
  最後のページ

   Home
   > 試してみよう Java実験コーナー
   > Javaアプレットと HTMLの実験1


Javaアプレットと HTMLの実験1

このページには、以下のサンプルを掲載しています。 下の項目をクリックをすると各サンプルにジャンプします。 ※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
  1. 実験1-1:表示領域の横幅、縦幅ともに未設定  
  2. 実験1-2:表示領域の横幅、縦幅を0に設定  
  3. 実験1-3:表示領域の横幅、縦幅に負の値を設定  
  4. 実験1-4:表示領域に文字列が表示されている領域より狭い範囲を設定  
  5. 実験1-5:読み込むアプレットに存在しないファイル名を指定  
  6. 実験1-6:受け渡しパラメータに日本語を設定  
  7. 実験1-7:アプレット側で利用しているパラメータをHTML上から削除  
  8. 実験1-8:アプレット側で利用していないパラメータをHTML上に追加  
  9. 実験1-9:HTML上のパラメータ値に空の文字列を設定する  
  10. 実験1-10:paramタグのvalue属性を削除する  

 このページでは、HTMLのJavaアプレット表示についていろいろ実験しています。各実験の【アプレット表示領域の表示結果】 のところには、サンプルHTMLを実行した結果からアプレット表示部分を切り出して画像として保存したものを表示しています。 【結果解説】には、Windowsのインターネットエクスプローラ6のアプレット表示領域の表示結果、ステータス情報、 Javaコンソールエラーメッセージの出力結果を元に記述しています。WEBブラウザの種類によっては、結果解説とは異なった表 示になるかもしれません。【エラー原因】ステータスバー、Javaコンソールエラーメッセージにエラーが表示された場合に記述します。 それでは、まず、実験材料として文字列を表示するだけの簡単なJavaアプレットを作成します。下の枠線内の内容をコピーしてテキストエディターなどに貼り付けます。ファイル名を"Sample01 .java"として保存してコンパイルします。コンパイルのやり方は、Javaプログラミング前準備のページを参照してください。 サンプルJavaソースファイルとHTMLファイル。実験1〜実験5は、下記2つのファイルを使用して行います。

【実験用サンプル Javaソースファイル - Sample01.java - 】
  1. import javax.swing.JApplet;
  2. import java.awt.Graphics;
  3. public class Sample01 extends JApplet {
  4.   public void paint(Graphics g){
  5.     g.drawString("Sample",10,10);
  6.   }
  7. }

【実験用サンプル HTMLファイル - Sample01.html - 】
  1. <html>
  2.   <applet code="Sample01.class" width="70" height="20"></applet>
  3. </html>

【Sample01.htmlの表示結果】



1. 実験1-1:表示領域の横幅、縦幅ともに未設定
sample01.htmlからwidth="70" height="20"を削除
【テストファイル1 - test01.html - 】
  1. <html>
  2.   <applet code="Sample01.class"></applet>
  3. </html>

【test01.htmlの表示結果】


【Javaコンソールエラーメッセージエラーメッセージ】
エラーメッセージありません。

【ステータスバーエラーメッセージ】
エラーメッセージありません。

【結果解説】
表示領域の指定を設定していなくても自動で表示領域が設定されるようです。アプレット表示領域のデフォルト 値が存在するようです。


2. 実験1-2:表示領域の横幅、縦幅を0に設定
Sample01.htmlから赤字部分を修正
【テストファイル2 - test02.html - 】
  1. <html>
  2.   <applet code="Sample01.class" width="0" height="0"></applet>
  3. </html>

【test02.htmlの表示結果】
何も表示されませんでした。

【Javaコンソールエラーメッセージエラーメッセージ】
エラーメッセージありません。

【ステータスバーエラーメッセージ】
エラーメッセージありません。

【結果解説】
何も表示されません。ステータスバー、Javaコンソールエラーメッセージどちらにもエラー出力はされていません。


3. 実験1-3:表示領域の横幅、縦幅に負の値を設定
Sample01.htmlから赤字部分を修正
【テストファイル3 - test03.html - 】
  1. <html>
  2.   <applet code="Sample01.class" width="-70" height="-20"></applet>
  3. </html>

【test03.htmlの表示結果】
何も表示されませんでした。

【Javaコンソールエラーメッセージエラーメッセージ】
エラーメッセージありません。

【ステータスバーエラーメッセージ】
エラーメッセージありません。

【結果解説】
アプレット表示領域の表示結果は、test02.htmlと同じでした。エラー表示もされてません


4. 実験1-4:表示領域に基本設定で文字列が表示されている領域より狭い範囲を設定
Sample01.htmlから赤字部分を修正
【テストファイル4 - test04.html - 】
  1. <html>
  2.   <applet code="Sample01.class" width="35"height="8"></applet>
  3. </html>

【test04.htmlの表示結果】


【Javaコンソールエラーメッセージエラーメッセージ】
エラーメッセージありません。

【ステータスバーエラーメッセージ】
エラーメッセージありません。

【結果解説】
文字の一部だけ表示されました。下の部分と右の部分が切れています。でもエラーメッセージは表示されていま せん。実験2〜4を総合して考えるとHTML、Javaプログラム双方とも画面に表示する対象が表示領域内かどうかとい うチェックはしないようです。表示対象物が表示領域内かどうかは、プログラマーの方で意識する必要がある ようです。


5. 実験1-5:読み込むアプレットに存在しないファイル名を指定
Sample01.htmlから赤字部分を修正
【テストファイル5 - test05.html - 】
  1. <html>
  2.   <applet code="abcdef.class" width="70" height="20"></applet>
  3. </html>

【test05.htmlの表示結果】


【Javaコンソールエラーメッセージエラーメッセージ】
  load: クラス abcdef.class が見つかりません。
  java.lang.ClassNotFoundException: abcdef.class
    at sun.applet.AppletClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
                          :
                          :

【ステータスバーエラーメッセージ】
"アプレット abcdef notinited"と表示される。

【結果解説】
表示領域は、確保されています。エラーメッセージを見ればわかりますが、Sample06.htmlで指定した" abcdef.class"が見つからないのでエラーが出力されています。



paramタグの実験です。Sample01.javaはparamタグの設定値を受け取れるように作られていません。そこで、 パラメータ文字列を受け取ってアプレット上に表示するように改造します(Sample02.java)。 赤字の部分がSample01.javaからの追加・修正部分です。

【実験用サンプル Javaソースファイル - Sample02.java - 】
  1. import javax.swing.JApplet;
  2. import java.awt.Graphics;
  3. public class Sample02 extends JApplet {
  4.   public void paint(Graphics g){
  5.     String str = getParameter("para1");
  6.     g.drawString(str,10,10);
  7.   }
  8. }

【実験用サンプル HTMLファイル - Sample02.html - 】
  1. <html>
  2.   <applet code="Sample02.class" width="80";20">
  3.     <param name="para1" value="param test">
  4.   </applet>
  5. </html>

【Sample02.htmlの表示結果】



6. 実験1-6:受け渡しパラメータに日本語を設定
Sample02.htmlから赤字部分を修正
【テストファイル6 - test06.html - 】
  1. <html>
  2.   <applet code="Sample02.class" width="120" height="20">
  3.     <param name="para1" value="パラメーター試験">
  4.   </applet>
  5. </html>

【test06.htmlの表示結果】


【Javaコンソールエラーメッセージエラーメッセージ】
エラーメッセージありません。

【ステータスバーエラーメッセージ】
エラーメッセージありません。

【結果解説】
"パラメータ試験"という文字列が表示されました。日本語も問題なく表示されるようです。

7. 実験1-7:アプレット側で利用しているパラメータをHTML上から削除
Sample02.htmlから<param〜の行を削除
【テストファイル7 - test07.html - 】
  1. <html>
  2.   <applet code="Sample02.class" width="70" height="20">
  3.   </applet>
  4. </html>

【test07.htmlの表示結果】

【Javaコンソールエラーメッセージ】
java.lang.NullPointerException: string is null
  at sun.java2d.SunGraphics2D.drawString(Unknown Source)
  at Sample02.paint(Sample02.java:9)



【ステータスバーエラーメッセージ】
エラーメッセージありません。

【結果解説】
コンソールエラーをみると"string is null"と表示されています。これは、文字列データが nullデータであることを示しています。次の行には、"〜 drawString(Unknown Source)"と書かれています。Sample02.javaの中に"drawString"と 書かれた部分があります。つまりここで、文字列を表示しようとしたけどデータがnullデータだったので エラーとなったわけです。パラメータを利用する場合は、アプレットプログラム内で設定がされていない場合 の対策を施しておく必要がありそうです。


8. 実験1-8:アプレット側で利用していないパラメータをHTML上に追加
Sample02.htmlから赤字の行を追加
【テストファイル8 - test08.html - 】
  1. <html>
  2.   <applet code="Sample02.class" width="80"height="20">
  3.     <param name="para1" value="param test">
  4.     <param name="abcdef" value="param test">
  5.   </applet>
  6. </html>

【test08.htmlの表示結果】


【Javaコンソールエラーメッセージ】
エラーメッセージありません。

【ステータスバーエラーメッセージ】
エラーメッセージありません。

【結果解説】
アプレットプログラム内でパラメータ値を利用しようとしまいとブラウザーは感知しないようです。


9. 実験1-9:HTML上のパラメータ値に空の文字列を設定する
Sample02.htmlからパラメータ名"para1"の値に空文字を設定
【テストファイル9 - test09.html - 】
  1. <html>
  2.   <applet code="Sample02.class" width="80"height="20">
  3.     <param name="para1" value="">
  4.   </applet>
  5. </html>

【test09.htmlの表示結果】


【Javaコンソールエラーメッセージ】
エラーメッセージありません。

【ステータスバーエラーメッセージ】
エラーメッセージありません。

【結果解説】
実験9ではパラメータ名は設定されているけど、設定値に空文字が設定されているという状態です。 この場合には、エラーは出力されませんでした。設定値に関しては空でも問題ないようです。


10. 実験1-10:paramタグのvalue属性を削除する
Sample02.htmlからパラメータ名"para1"のvalue属性を削除する
【テストファイル10 - test10.html - 】
  1. <html>
  2.   <applet code="Sample02.class" width="80"height="20">
  3.     <param name="para1">
  4.   </applet>
  5. </html>

【test10.htmlの表示結果】


【Javaコンソールエラーメッセージ】
エラーメッセージありません。

【ステータスバーエラーメッセージ】
エラーメッセージありません。

【結果解説】
実験9では、設定値に空文字が設定されていましたが、実験10ではパラメータ名は設定されているけど、設定値そのものがないという状態です。 この場合には、エラーは出力されませんでした。パラメータ名さえあれば設定値があろうが無かろうが関係ないようです。


- Page 1 -
  先頭のページ
  前のページ
  次のページ
  最後のページ



最終更新日:2019/02/13

2015-03-01からの訪問者数
  1074 人