Parliamo del classico dialog che deve essere visualizzato quando eseguiamo operazioni per le quali l'utente deve aspettare.

Creare un loading dialog in JavaFX è piuttosto semplice.

Per ridimensionare le immagini in Ruby, ho usato il modulo rmagick!

Si tratta di una interfaccia tra ImageMagick.

Quindi do per scontato che sia installato sul vostro sistema.

Le Data classes in Kotlin sono classi che vengono usate solo come contenitori di dati.

Possiamo paraganorarle ai classici JavaBean, con una differenza enorme sulla sintassi.

Lo scopo del codice che vedremo oggi nasce da una esigenza reale: mettere un watermark, corrispondente al nome del file, su tante immagini risiedenti tutte nella stessa cartella.

Facendolo in Java ci ho messo relativamente poco tempo.

Nel programma non è prevista una gui; il path viene dato tramite riga di comando.

Voi, ovviamente, fate tutte le modifiche che volete / vi servono.

L'editarietà in Kotlin è abbastanza diversa da quella a cui siamo abituati in Java.

Cominciando dalla classe base:

open class Person constructor(var name: String, var age: Int) {
    open fun isAdult(): Boolean {
        return this.age >= 18
    }
}

Partiamo dal presupposto che riempiamo una TableView in JavaFX usando oggetti custom.

Non mi metterò a spiegare come riempire una lista; potete vedere in un precedente articolo per come riempirla da database.

Qui vederemo come intercettare la riga selezionata, e come prendere i dati del relativo oggetto custom.

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.

Come sappiamo, Ruby è un linguaggio che ha pieno supporto alla OOP.

Oggi vediamo come implemente il concetto di ereditarietà.

Sono rimasto sorpreso dal poco codice che ho dovuto scrivere per listare file e directory in Kotlin.

Vediamo tre esempi, con tre funzioni diverse:

  • list() -> ritorna un array di String, e quindi stampa solo il nome dei file
  • listFiles() -> ritorna un array di File, e quindi è possibile accedere a tutte le varie funzioni e proprietà di un oggetto File
  • walk() -> che produce un FileTreeWalk, e lista i file in maniera ricorsiva; ci sono anche le funzioni walkBottomUp() e walkTopDown(), che si differenziano solo per il verso un cui eseguono la scansione (poetet vedere su Stack Overflow la mia domanda)

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>