sábado, 21 de abril de 2018

Scala y swing se unen gracias scala-swing

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