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
}
}