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>

Abbiamo la nostra bella TableView in JavaFX:

<TableView fx:id="tblBooks"
  BorderPane.alignment="CENTER"
  onKeyPressed="#deleteBook"/>

E vogliamo intercettare il tasto CANC / DEL, e di conseguenza compiere un'azione (generalmente cancellare riga).

Come fare?

Ci sono alcuni IDE che non impostano l'ultima versione di Java come default in Maven.

Ad esempio IntelliJ, che mi ha fatto penare per una mezz'ora abbondante.

Volendo possiamo impostarlo noi nel pom.xml; io lo farei sempre a scanso di equivoci.

Quando si hanno dati in forma tabellare, quasi sicuramente abbiamo bisogno di intercettare qualche evento per recupare i dati.

Qui vediamo come intercettare il doppio click del mouse su una TableView in JavaFX.

Cominciamo dal layout FXML:

<BorderPane xmlns="http://javafx.com/javafx/8.0.112" 
            xmlns:fx="http://javafx.com/fxml/1"
            fx:controller="com.mp.book.ControllerMain">
    <center>
        <TableView fx:id="tblBooks" BorderPane.alignment="CENTER" 

onMouseClicked="#onTblDoubleClick"/>
    </center>
</BorderPane>

JavaFX arriva già con strumenti per la creazione di grafici senza usare librerie esterne.

Sono anche abbastanza semplici da usare.

Vediamo un esempio di PieChart.