Si queremos programar en Scala con ventanas podemos usar la plataforma Java. La plataforma Java nos ofrece diferentes opciones en las que tenemos a Swing.
Pero esto nos puede llevar mucho trabajo y tendríamos que llamar desde Scala funciones de java un lió, por ende Scala nos brinda una librería llamada scala-swing
scala-swing nos permite escribir código swing de forma Scala y a la vez nos facilita muchísimo este trabajo.
Veamos un ejemplo:
Programamos un archivo llamado: Ventana.scala
package com.assembly
import scala.swing._
import scala.swing.event._
object Ventana extends SimpleSwingApplication {
def top = new MainFrame {
title = "SwingApp"
var numclicks = 0
object label extends Label {
val prefix = "Tocaste el boton : "
text = prefix + "0 "
listenTo(button)
reactions += {
case ButtonClicked(button) =>
numclicks = numclicks + 1
text = prefix + numclicks
}
}
object button extends Button {
text = "Soy El buton"
}
contents = new FlowPanel {
contents.append(button, label)
border = Swing.EmptyBorder(5, 5, 5, 5)
}
}
}
Para llamar esta clase podemos utilizar un Objeto, llamado Main :
package com.assembly
object Main {
def main(args: Array[String]): Unit = {
val ventana = Ventana
ventana.startup(args)
}
}
Y Listo!!
Dejo link: https://github.com/scala/scala-swing