ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

JavaAppletのサンプル

2007-12-21 18:01:20 | JavaとWeb

最近気がついたんだけど、このブログで、一度もAppletの
サンプルを書いていない気がするので、書いてみました。




■必要なファイル&仕様

 JavaAppletの場合、Javaのプログラムのほかに、
アプレットを呼び出すHTMLファイルが必要になります。

で、今回は、

・アプレットを呼び出す側で、引数noに数字をセットして
・その数字を、X=(数字+1)*10,Y=(数字+1)*10の座標に書き出します。

 今回は、その数字(no)に、5をセットしますので、
 5を、(x,y)=(60,60)に書き出します。
 アプレット名は、Test1.classとします。




■JavaのApplet
 Javaのアプレットクラス、(Test1.java)は、以下のとおりです
import java.awt.*;
import java.applet.*;

public class Test1 extends Applet {

	String	str = "0";
	
	/*
	 * 初期化
	 */
	public void init()
	{

		//	パラメーターから値取得
		String nostr	=	this.getParameter("no");
		if ( nostr	!=	null )
		{
			str	=	nostr;
		}
	}

	/*
	 * スタート
	 */
	public void start()
	{

	}

	/*
	 * ストップ
	 */
	public void stop()
	{

	}

	/*
	 * 終了
	 */
	public void destroy()
	{

	}

	/*
	 * 表示
	 */
	public void paint(Graphics g)
	{
		int no;
		try
		{
			no = Integer.parseInt(str);
			no++;
		}
		catch(Exception e)
		{
			no	=	0;
		}
		g.drawString(str,no*10,no*10);	
	}
}

(上記< > ¥は、本当は半角)

 このソースをclassファイルにしたものが、アプレット対象ファイルとなります。




■呼び出すHTMLファイル
 で、アプレットの呼び出しHTMLは、こんなかんじ
<html>
<head>
<title>Applet Test</title>
</head>
<body>
<applet code="Test1.class" width=300 height=300>
<param name="no" value="5">
</applet>
</body>
</html>

(上記< > ¥は、本当は半角)

なお、ここでは、appletタグを使っているけれど、
appletタグは推奨されていない。
ので、Objectタグでいいかというと、FireFoxとIEで
Objectタグの書き方が違う。
くわしくは、
appletかobjectかembedか
http://oku.edu.mie-u.ac.jp/~okumura/java2/whichtag.html

が分かりやすいと思います。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ネットワークのキーワードまとめ-Web表示(1)

2007-12-21 14:22:09 | Weblog

 シリーズ「ネットワークのキーワードまとめ」の続き。
 今回から、何回かに分けて、WebでURLを入れたら表示されるまで(=HTTP)を、OSIの7階層に沿って説明してみたいと思います。

 まずは、クライアント側から信号が出るまで
 (今回自信ないです。多少間違ってたらごめんなさい)




<<アプリケーション層>>
1.ブラウザから、表示したいURLを入れます http://www.yahoo.co.jp などです。
2.アプリケーションでは、このURLをWebを検索、表示するためのHTTPプロトコルにします。
 (書き出す内容は、セッション層で説明します)

<<プレゼンテーション層>>
1.書き出す内容中、必要があれば、コード変換やURLエンコーディングを行います。
  →今回は日本語がないので、 ここの変換はありません。
 (書き出す内容は、セッション層で説明します)

<<セッション層>>
 ポートを指定して、送りたいデータを、ソケットを使って送ります。
 (以下Javaのソケットで説明します)

1.まず、ソケットをOPENします。
  このとき、つなぎたいURL、相手先ポートを指定します

  Socket socket = new Socket("www.yahoo.co.jp",80);

2.コネクションが確立すれば、通信先(OutputStream)がもらえるので

3.内容を書き出します。
  GET / HTTP/1.0
  (1.0のあとに、改行2つ。) 

<<トランスポート層>>

1.送信内容を受け取り、適当な大きさのセグメントにします。

2.そしたら、送信元ポート番号を適当に設定します。
  (宛先ポート番号は、セッション層で受け取っている)

3.3ウェイハンドシェークを行って
  シーケンス番号を受け取り

4.セグメントのヘッダをつけて、送信します

<<ネットワーク層:IP>>

1.もし、宛先がURLでIPアドレスでなければ、DNSでIPアドレス
  をもとめます。

2.自分のIPアドレスなどを付けて、ヘッダを作成します。
  (自分のIPアドレスが分からない/決まってない場合は、
DHCPやBOOTP,RARPによって、取得しているはずです)

3.その内容を投げます
 →自分のネットワーク内なら、その人のところへ、
  他のネットワークへならデフォルトゲートウェイへ
  投げられます。

<<データリンク層:イーサネット>>

1.送り先のMACアドレスが分からない場合、
   あらかじめ、ARPによって、送りたいIPアドレス
   (は、ネットワーク層の3より分かります)をセットして
   ブロードキャストすることにより、わかります。 

2.ネットワーク層のデータに、送り先MACアドレス、自分のMACアドレス
  などを付けて、送ります。

<<物理層>>

1.データリンク層の送信内容を、マンチェスター符号化などにより、
  電圧の高低などの電気信号等に変えて、線に送信します。




次回は、中継するスイッチとか、ルーターとか




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする