/* * Whiteboard * * Version 1.0 * * 20061017 * * Author: Jenny Nordgren */ /** * Whiteboard är ett proram som låter två användare rita tillsammans i varsitt fönster över nätverket. * */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; import javax.swing.event.*; public class Whiteboard extends JFrame { private Paper p; private JLabel messageLabel = new JLabel(); private CollaborationHandler ch; /** * Konstruktorn tar en lokal port, en host-adress och host-port. * Den skapar ett ritfönster och ett objekt som hanterar uppkopplingen mot ett samarbetsfönster. */ public Whiteboard(int myPort, String host, int remotePort) { setDefaultCloseOperation(EXIT_ON_CLOSE); Container con = getContentPane(); con.add(messageLabel, BorderLayout.SOUTH); ch = new CollaborationHandler(host, myPort, remotePort); ch.setWhiteboard(this); Paper p = new Paper(ch); ch.setCanvas(p); con.add(p, BorderLayout.CENTER); setSize(640, 480); setVisible(true); } /** * Publik metod som gör att exempelvis felmeddlanden kan skrivas ut längst ner i ritfönstret. */ public void updateMessageLabel(String message) { messageLabel.setText(message); } /** * main-metoden tar in parametrar om lokal port, host och host-port och skapar ett Whiteboard-fönster utifrån dessa inställningar. Vid fel argument skrivs en instruktion ut i terminalen. */ public static void main(String[] args) { String host = "127.0.0.1"; int myPort = 2000; int remotePort = 2000; try { switch(args.length) { case 1: myPort = Integer.parseInt(args[0]); break; case 2: myPort = Integer.parseInt(args[0]); host = args[1]; break; case 3: myPort = Integer.parseInt(args[0]); host = args[1]; remotePort = Integer.parseInt(args[2]); break; default: break; } } catch (Exception e) { System.err.println("Invalid arguments. Usage: java Whiteboard myPort host remotePort"); } new Whiteboard(myPort, host, remotePort); } }