例題(データI/O)


概要

このサンプルプログラムは、データストリームのインタフェースを用いたプログラム例です。
このプログラムは、KLICのプログラムにJavaによるGUIでデータを与えるプログラムとなっています。GUIでは、データの入力や表示をグラフィカルに行うことができるようになっています。
データストリームのインタフェースを用いて、JavaとKLICのプログラムを接続しています。このサンプルでは、KLICのプログラムは、単にデータストリームに送られたデータをそのまま返すプログラムとなっていますが、他のKLICプログラムにも利用可能です。KLIC側のプログラムのデータ入出力として、今回のデータストリームのインタフェースを利用すれば、このJavaのGUIが適用できるようになっています。
JavaのGUIは、単独のアプリケーションとして使用するだけでなく、アプレットとしてHTMLの中に貼りつけることも可能です。このことにより、WWWを介してKLICのアプリケーションが利用できるようにすることも出来ます。


コンパイル

他のサンプルプログラム同様に、jkディレクトリにあるソースとsampleディレクトリのファイルを利用するので、トップディレクトリで、makeしてください。これにより、このサンプルプログラムが利用できるようになります。
プログラムの本体は、sample/dataio/の下にありますので、プログラムの実行は、このディレクトリで行います。


ファイル説明


実行方法

まず、KLIC側のサーバプログラムを起動します。
% ./echo &
として実行します。Java側のプログラムは、JDKのjavaで実行します。
% java DataIO
とすれば、Java側のプログラムが起動し、サンプルプログラムが利用できます。
Data Input Frameで送信するデータを作成して、Sendボタンを押します。データはKLIC側に送信されるとともに、メインウィンドウのHistoryにそのデータが表示されます。Java側がデータを受け取ると、Data Output Frame にそのデータが表示されます。また、同時にHistoryにもそのデータが表示されます。Historyで任意の行を選択すると、そのデータの図形的表現がData Input Frameに表示されます。KLIC側との接続を切断するには、メインウィンドウのdisconnectボタンを押してください。

Java側のプログラムは、アプレットとしても利用できます。アプレットとして利用する場合は、このプログラムがあるディレクトリをWWWサーバに登録します。そして、このディレクトリ中にあるdataio.htmlを開くと利用できます。このとき、KLIC側のプログラムは、WWWサーバと同じホストマシン上で既に動いている必要があります。


プログラムの説明

このプログラムは、KLICとJavaのプログラム間で、データストリームのインタフェースを利用してデータをやり取りするサンプルプログラムです。
KLIC側のプログラムは、サーバプログラムとして動作し、Java側から送られたデータをそのまま返す単純なプログラムとなっています。Java側のプログラムは、KLIC側のプログラムへのデータ入出力をGUIを用いて行うものとなっています。この2つのプログラムをソケットを用いて接続し、データストリームのインタフェースを利用してデータをやり取りしています。
このプログラムを利用することにより、KLICのプログラムにデータ入力を行うことが簡単に行え、インタラクティブにデータを入出力することが可能となります。KLIC側のプログラムは、サーバプログラムとして動き、データストリームのインタフェースを用いるようにしてあれば、どんなプログラムでも利用することが出来ます。
Java側のプログラムはアプレットとしても動作するようになっています。これにより、JDKがなくても、Javaが動作するWWWブラウザがあれば、どこでも利用することができます。

JavaのGUI
プログラムが実行されると、メインウィンドウのほかに、2つのウィンドウが開きます。1つは、"Data Input Frame"というタイトルが付いたもので、データを入力するためのウィンドウです。もう1つは、"Data Output Frame"というタイトルが付いていて、データを出力、表示するウィンドウです。
データI/O メインウィンドウ
メインウィンドウは、上部に、接続操作を行うための "connect", "disconnect"ボタンがあります。中央には、これまでのデータ送受の履歴を表示する、ヒストリリストがあります。下部のテキストフィールドは、現在の状況を示すステータスバーです。
データI/O 入力ウィンドウ
データ入力ウィンドウでは、KLIC側に送るデータを作成します。キャンバス上でデータを作成し、上部にある"Send"ボタンを押すことによりデータが送られます。キャンバス上では、図形的表現を利用してデータを入力します。このフレームでの操作の仕方を以下に示します。

データI/O 出力ウィンドウ
メインウインドウでは、基本的にKLIC側から送られたデータを表示しています。ただし、アプレットのメイン画面にあるヒストリリストからデータを選択すると、そのデータを表示させることができます。なお、出力ウィンドウでは、データを変更することが出来ませんので注意してください。