scala/ScalaBook/chapter-06/graphics1.scala.orig

import scala.swing._
import scala.swing.event._


object circle extends SimpleGUIApplication {
  def top = new MainFrame {
    var mouseX = 0
    var mouseY = 0
    var mouseclicked = false
    title = "Draw Circle"
    preferredSize = (350,250)
    var canvas = new BorderPanel {
      border = Swing.EmptyBorder(15, 15, 15, 15)
      opaque = false
      override def paintComponent(g: java.awt.Graphics) {
        super.paintComponent(g)
        var g2 = g.asInstanceOf[java.awt.Graphics2D]
        g2.setColor(java.awt.Color.magenta)
        g2.fill(new java.awt.Rectangle(350,250))
        g2.setColor(java.awt.Color.blue)
          if ( mouseclicked ) {
            g2.fillOval(mouseX, mouseY, 10, 10)
            mouseclicked = false
          }
      }
      listenTo(Mouse.clicks)
      reactions += {
        case MouseClicked(_, p, _, 1, _) => {  
          mouseX = p.x
          mouseY = p.y
          mouseclicked = true 
          repaint
        }
      }
    }
    contents = canvas

  }
}