scala/ScalaBook/chapter-06/hello2h.scala
import scala.swing._
import scala.swing.event._
import javax.swing.{Icon, ImageIcon}
class ImageButton(icon: Icon ) extends Button {
override lazy val peer: javax.swing.JButton =
new javax.swing.JButton(icon) with SuperMixin
}
class ITButton(text0: String, icon: Icon ) extends Button {
override lazy val peer: javax.swing.JButton =
new javax.swing.JButton(text0, icon) with SuperMixin
}
object hello extends SimpleGUIApplication {
def top = new MainFrame {
title = "Greetings"
preferredSize = (250,180)
val label = new Label {
text = "Hello World!"
font = new java.awt.Font("Verdana",
java.awt.Font.BOLD, 22)
}
val close_button = new ITButton("Quit",new ImageIcon(resourceFromClassloader("close_button2.jpg")))
contents = new GridBagPanel {
var c = new Constraints
c.gridwidth = java.awt.GridBagConstraints.REMAINDER
add(label,c)
add(Swing.VStrut(20), c)
add(close_button, c)
background = java.awt.Color.lightGray
border = Swing.EmptyBorder(50, 50, 50, 50)
}
listenTo(close_button)
reactions += {
case ButtonClicked(b2) => exit(0)
}
}
}