TalkTool.java
package talktool;
import ExitableFrame;
import talktool.window.*;
import talktool.network.*;
import java.net.*;
/** ネットワーク通じてテキストを送受信できるクラス */
public class TalkTool extends ActionTest {
/** ネットワークを管理するためのオブジェクト */
protected Network network;
/** 通信の出入口となるオブジェクト */
protected Communicator communicator;
/** コンストラクタ */
public TalkTool( Network network ) {
super();
this.network = network;
}
/** 初期設定を実行するメソッド */
public void init() throws Exception {
try {
network.init();
communicator = network.getCommunicator();
}
catch( Exception e ) {
throw e;
}
}
/** 送信ボタンの処理を記述するメソッド */
public void sendButtonClicked() {
try {
String text = getLeftText();
setLeftText("");
setMessage( "送信処理を実行しました" );
communicator.setText( text );
}
catch( Exception e ){
setMessage( e.getMessage() );
}
}
/** 受信ボタンの処理を記述するメソッド */
public void receiveButtonClicked() {
try {
String text = communicator.getText();
if( text == null || text.equals("") ){
setMessage( "新しい受信データがありません" );
}
else {
setRightText( text );
setMessage( "受信処理を実行しました" );
}
}
catch( Exception e ){
setMessage( e.getMessage() );
}
}
/** 最初に呼び出されるメソッド */
public static void main( String argv[] ) {
if( argv.length != 1 ) {
System.err.println(
"使用法(1):java myappli.TalkTool -server" );
System.err.println(
"使用法(2):java myappli.TalkTool servername" );
System.exit(0);
}
NetInfo info;
String infoString;
if( argv[0].regionMatches( 0, "-server", 0, 2 ) ) {
info = new NetInfo( true, null ); // サーバー
infoString = "Server";
}
else {
info = new NetInfo( false, argv[0] ); // クライアント
infoString = argv[0];
}
Network network;
TalkTool talkTool;
try {
network = new Network( info );
talkTool = new TalkTool( network );
talkTool.init();
ExitableFrame frame
= new ExitableFrame( "Talk Tool Ver1.0:" + infoString );
frame.add( talkTool, "Center" );
frame.pack();
frame.setVisible( true );
}
catch( Exception e ) {
System.err.println( "ネットワークエラーが発生しました" );
System.exit(-1);
}
}
}