Kotlin: introduzione a TornadoFX
Kotlin ha disposizione tutti i framework standard di Java per la costruzione di interfacce grafiche.
Ma c'è un progetto che sta prendendo piede basato su JavaFX, che sembra molto promettente: TornadoFX!
Vediamo un esempio introduttivo; se usate Maven aggiungete questa diependenza:
<dependency>
<groupId>no.tornado</groupId>
<artifactId>tornadofx</artifactId>
<version>1.7.12</version>
</dependency>
A questo punto create una classe del genere:
import javafx.beans.property.SimpleIntegerProperty
import javafx.geometry.Pos
import javafx.scene.layout.BorderPane
import tornadofx.*
class MainView : View() {
override val root = BorderPane()
val counter = SimpleIntegerProperty()
init {
title = "Counter"
with (root) {
style {
padding = box(20.px)
!isResizable()
}
center {
vbox(10.0) {
alignment = Pos.CENTER
label() {
bind(counter)
style { fontSize = 25.px }
}
button("Click to increment").setOnAction {
counter.value += 1
}
}
}
}
}
}
Abbiamo impostato una finestra con un bottone che aumenta un counter.
Come vedete la sintassi è molto Javascript / QML style, molto diversa a quella a cui siamo abituati con Java.
Nel nostro main avremmo una cosa del genere:
import javafx.application.Application
import tornadofx.App
fun main(args: Array) {
Application.launch(MyApp::class.java, *args)
}
class MyApp : App() {
override val primaryView = MainView::class
}
In un prossimo esempio vedremo come usare un file FXML per la costruzione della gui.
Enjoy!
kotlin tornadofx maven fxml
Commentami!