/* * Paper * * Version 1.0 * * 20061017 * * Author: Jenny Nordgren */ /** * Paper är ett ritpapper där man kan rita med svart färg med hjälp av muspekaren. Originalkod från exempelprogrammet Draw.java med två rader modifierade i lyssnarklasserna. * */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; import javax.swing.event.*; class Paper extends JPanel { private HashSet hs = new HashSet(); private CollaborationHandler ch; private MouseListener mlistener; private MouseMotionListener mmlistener; public Paper(CollaborationHandler ch) { this.ch = ch; setBackground(Color.white); mlistener = new L1(); mmlistener = new L2(); addMouseListener(mlistener); addMouseMotionListener(mmlistener); } public void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.black); Iterator i = hs.iterator(); while(i.hasNext()) { Point p = (Point)i.next(); g.fillOval(p.x, p.y, 2, 2); } } public void addPoint(Point p) { hs.add(p); repaint(); } /** * Lyssnare som ritar ut en punkt på pappret när musen är trycks ner eller rörs med nedtryckt musknapp. Skickar också iväg MouseEvent:en till samarbetsfönstret. */ class L1 extends MouseAdapter { public void mousePressed(MouseEvent me) { addPoint(me.getPoint()); ch.sendEvent(me); } } class L2 extends MouseMotionAdapter { public void mouseDragged(MouseEvent me) { addPoint(me.getPoint()); ch.sendEvent(me); } } }