scala/ScalaBook/chapter-06/dialog5.scala
import scala.swing._
import scala.swing.event._
object dialog extends SimpleGUIApplication {
def top = new MainFrame {
title = "Football Teams"
preferredSize = (380,300)
val label = new Label {
text = "What is your favorite team?"
font = new java.awt.Font("Verdana",
java.awt.Font.BOLD, 22)
}
val fan = new Label {
text = ""
font = new java.awt.Font("Verdana",
java.awt.Font.BOLD, 22)
}
contents = new GridBagPanel { mypanel =>
var c = new Constraints
c.gridwidth = java.awt.GridBagConstraints.REMAINDER
add(label,c)
val myfont = new java.awt.Font("Verdana",java.awt.Font.PLAIN,18)
add(Swing.VStrut(20), c)
val teams = new ButtonGroup
val chelsea = new RadioButton("Chelsea")
chelsea.background = java.awt.Color.lightGray
chelsea.font = myfont
val arsenal = new RadioButton("Arsenal")
arsenal.background = java.awt.Color.lightGray
arsenal.font = myfont
val liverpool = new RadioButton("Liverpool")
liverpool.background = java.awt.Color.lightGray
liverpool.font = myfont
val manchesterUnited = new RadioButton("Manchester United")
manchesterUnited.background = java.awt.Color.lightGray
manchesterUnited.font = myfont
val radios = List(chelsea,arsenal,liverpool,manchesterUnited)
teams.buttons ++= radios
teams.select(chelsea)
val myradios = new BoxPanel(Orientation.Vertical) {
contents ++= radios
background = java.awt.Color.lightGray
}
add(myradios,c)
layout(new Button(Action("Choose a team") {
teams.selected.get match {
case `chelsea` => fan.text = "Are you a pensioner?"
case `arsenal` => fan.text = "Are you a gunner?"
case `liverpool` => fan.text = "Are you a red?"
case `manchesterUnited` => fan.text = "Are you a red devil?"
}
}){ font = new java.awt.Font("Verdana",
java.awt.Font.PLAIN, 14)}) = c
add(Swing.VStrut(20), c)
add(fan,c)
background = java.awt.Color.lightGray
border = Swing.EmptyBorder(50, 50, 50, 50)
}
}
}