Frame Application
              In den meisten Fällen einer Swing - GUI Anwendung reicht es nicht aus, die GUI von
              SimpleSwingApplication abzuleiten. Auch wenn die Klasse SimpleSwingApplication
              einen guten Einstieg in die Swing Welt bietet, kommt schnell der Wunsch auf das Fenster selber zu erzeugen.
              Das nächste Beispiel zeigt ein Fenster mit einem Label, wobei das Fenster durch Ableitung
              der Klasse scala.swing.Frame erzeugt wird.
            
import scala.swing._
object MyFrame{
  def main(args : Array[String]) {
    val myFrame = new MyFrame()
    myFrame.visible = true
  }
}
class MyFrame extends Frame{
  title = "MyFrame"
  contents = new Label("MyLabel")
}
              Im Bereich der GUI - Anwendungen hat sich herausgestellt, dass das
              MVC-Pattern (engl. Model View Control) einen guten Ansatz zum Entwickeln anspruchsvoller Anwendungen
              bietet. Die nachfolgenden Quelltexte zeigen die Anwendung des MVC-Patterns
              mit Scala. Die Klasse Starter gehört nicht zum
              MVC-Pattern, sondern dient lediglich zum Starten der Anwendung.
            
object Starter {
  def main(args: Array[String]) {
    new Control()
  }
}
class Model {
  var noClicks : Int = 0
}
import scala.swing._
class View extends Frame{
  val panel = new FlowPanel()
  val button = new Button("Click me")
  val label = new Label()
    
  panel.contents += button
  panel.contents += label
  
  contents = panel
    
  visible = true
}
import scala.swing.event._
class Control {
  val view = new View
  val model = new Model  
  
  setData()
  
  view.listenTo(view.button)
  view.reactions += {
    case ButtonClicked(b) => model.noClicks += 1
                             setData()
  }
  
  def setData() : Unit = {
    view.label.text = model.noClicks.toString
  }
}
              Das Programm erzeugt ein Fenster mit einem Button und einem Label,
              wie im nachfolgenden Bild dargestellt.
            
            Das Label zeigt die Anzahl der "Clicks" auf dem Button an. Bei jedem "Click" wird die dargestellte Zahl um eins erhöht.
Wie die Namen der Klassen bereits vermuten lassen, haben die einzelnen Klassen folgende Aufgaben:
Starter
            
              Wie bereits oben erwähnt gehört die Klasse Starter nicht
              zum MVC-Pattern. Diese Klasse dient lediglich zum Starten der Anwendung.
            
Model
            
              Die Klasse Model verwaltet die darzustellenden Daten. In diesem
              Beispiel wird hier lediglich die Anzahl vorgenommener "Clicks" gespeichert.
            
View
            
              Die Klasse View stellt die Benutzeroberfläche (das Fenster mit Button und Label)
              zur Verfügung. Das View hat keine Verbindung zum Model.
            
Control
            
              Das Control übernimmt die Verwaltung der darzustellenden Daten sowie
              die Reaktion auf Benutzeraktionen. Das Control ist dafür verantwortlich,
              dass das Label im View die richtige Anzahl "Clicks" darstellt und
              die Anzahl im Model, bei einem "Click" auf den Button,
              erhöht wird.