📄 collabtool.java
字号:
/* * Java Network Programming, Second Edition * Merlin Hughes, Michael Shoffner, Derek Hamner * Manning Publications Company; ISBN 188477749X * * http://nitric.com/jnp/ * * Copyright (c) 1997-1999 Merlin Hughes, Michael Shoffner, Derek Hamner; * all rights reserved; see license.txt for details. */import java.io.*;
import java.awt.*;
public class CollabTool {
private static int id = 0;
protected Frame frame;
protected Demultiplexer demultiplexer;
public CollabTool (InputStream in, OutputStream out) {
frame = new Frame ("Collaborative Tool " + (id ++));
frame.setLayout (new GridLayout (2, 1));
Whiteboard wb = new Whiteboard ();
frame.add (wb);
Chatboard cb = new Chatboard ();
frame.add (cb);
frame.pack ();
MessageOutputStream messageOut = new MessageOutputStream (out);
MessageInputStream messageIn = new MessageInputStream (in);
cb.setMessageOutput (new MultiplexOutputStream (messageOut, "chat"));
wb.setMessageOutput (new MultiplexOutputStream (messageOut, "wb"));
demultiplexer = new Demultiplexer (messageIn);
demultiplexer.register ("chat", cb.getMessageOutput ());
demultiplexer.register ("wb", wb.getMessageOutput ());
}
public void start () {
demultiplexer.start ();
frame.setVisible (true);
}
public static void main (String[] args) throws IOException {
PipedOutputStream out0 = new PipedOutputStream ();
PipedInputStream in1 = new PipedInputStream (out0);
PipedOutputStream out1 = new PipedOutputStream ();
PipedInputStream in0 = new PipedInputStream (out1);
CollabTool collabTool0 = new CollabTool (in0, out0);
CollabTool collabTool1 = new CollabTool (in1, out1);
collabTool0.start ();
collabTool1.start ();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -