Kotlin: introduzione a TornadoFX

Mattepuffo's logo
Kotlin: introduzione a TornadoFX

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!


Condividi

Commentami!