talkmaster.java

来自「aglet的部分源码」· Java 代码 · 共 111 行

JAVA
111
字号
package examples.talk;/* * @(#)TalkMaster.java *  * 03L7246 (c) Copyright IBM Corp. 1996, 1998 *  * The program is provided "as is" without any warranty express or * implied, including the warranty of non-infringement and the implied * warranties of merchantibility and fitness for a particular purpose. * IBM will not be liable for any damages suffered by you as a result * of using the Program. In no event will IBM be liable for any * special, indirect or consequential damages or lost profits even if * IBM has been advised of the possibility of their occurrence. IBM * will not be liable for any third party claims against you. */import com.ibm.aglet.*;import java.io.Externalizable;import java.io.ObjectInput;import java.io.ObjectOutput;import java.io.IOException;import java.net.URL;/** *  * @version     1.00    $Date: 2001/07/28 06:34:20 $ * @author      Mitsuru Oshima * @see examples.talk.TalkSlave */public class TalkMaster extends Aglet {	transient AgletProxy remoteProxy = null;	String name = "Unknown";	TalkWindow window = null;	public void dispatchSlave(String dest) {		try {			if (remoteProxy != null) {				remoteProxy.sendMessage(new Message("bye"));			} 			AgletContext context = getAgletContext();			AgletProxy proxy = context.createAglet(null, 												   "examples.talk.TalkSlave", 												   getProxy());			URL url = new URL(dest);			remoteProxy = proxy.dispatch(url);		} catch (InvalidAgletException ex) {			ex.printStackTrace();		} catch (Exception ex) {			ex.printStackTrace();		} 	}	private String getProperty(String key) {		return System.getProperty(key, "Unknown");	}	public boolean handleMessage(Message msg) {		if (msg.sameKind("dialog")) {			window.show();		} else if (msg.sameKind("text")) {			if (window.isVisible() == false) {				window.show();			} 			window.appendText((String)msg.getArg());			return true;		} 		return false;	}	public void onCreation(Object o) {		window = new TalkWindow(this);		window.pack();		window.show();		try {			name = getProperty("user.name");		} catch (Exception ex) {}	}	public void onDisposing() {		if (window != null) {			window.dispose();			window = null;		} 		if (remoteProxy != null) {			try {				remoteProxy.sendMessage(new Message("bye"));			} catch (AgletException ex) {				ex.printStackTrace();			} 		} 	}	private void print(String m) {		System.out.println("Sender: " + m);	}	void sendText(String text) {		try {			if (remoteProxy != null) {				remoteProxy.sendMessage(new Message("text", 													name + " : " + text));			} 		} catch (Exception ex) {			ex.printStackTrace();		} 	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?