scala/ScalaBook/chapter-06/vv.scala

import    java.awt.{Dimension, Graphics, Point}
import    scala.swing.{BorderPanel, MainFrame, Panel, SimpleGUIApplication}
import    scala.swing.event.{MouseClicked, WindowClosed}

object HandleDoubleClick extends SimpleGUIApplication {
    val    panel:Panel = new BorderPanel {
            var    points:List[Point] = List()
            preferredSize = (300, 200)
            listenTo(Mouse.clicks)
            reactions += {
                case MouseClicked(_, p, _, 2, _) => {
                    points = p::points
                    repaint
                }
            }
            override def paintComponent(g:Graphics):Unit = {
                super.paintComponent(g)
                g.clearRect(0, 0, size.width, size.height)
                for (val p <- points.reverse) {
                    g.drawString("(%d,%d)".format(p.x, p.y), p.x, p.y)
                }
            }
        }
    def top = new MainFrame {
            title = "handle double click"
            location = new Point(100, 100)
            contents = panel
        }
}