Disegnare forme in TornadoFX e Kotlin

Mattepuffo's logo
Disegnare forme in TornadoFX e Kotlin

Disegnare forme in TornadoFX e Kotlin

TornadoFX, essendo un porting di JavaFX per Kotlin, ha praticamente tutte le sue potenzialità.

Oggi vediamo come aggiungere facilmente delle forme.

Useremo uno stackpane come layout di base.

Cominciamo da un rettangolo:

import javafx.scene.paint.Color
import tornadofx.*

class MainView : View() {

    override val root = stackpane()

    init {
        with(root) {
            rectangle {
                fill = Color.ORANGE
                width = 300.0
                height = 150.0
                arcWidth = 20.0
                arcHeight = 20.0
            }
        }
    }
}

Per un cerchio:

import javafx.scene.paint.Color
import tornadofx.*

class MainView : View() {

    override val root = stackpane()

    init {
        with(root) {
            circle {
                centerX = 100.0
                centerY = 100.0
                radius = 50.0
                fill = Color.ORANGE
            }
        }
    }
}

Un linea:

import tornadofx.*

class MainView : View() {

    override val root = stackpane()

    init {
        with(root) {
            line {
                startX = 50.0
                startY = 50.0
                endX = 150.0
                endY = 100.0
            }
        }
    }
}

Ovviamente si possono disegnare tutte le forme che volete; ve lo lascio come studio.

Come ultimo esempio, vediamo come disegnare usando SVG:

import javafx.scene.effect.DropShadow
import javafx.scene.paint.Color
import tornadofx.*

class MainView : View() {

    override val root = stackpane()

    init {
        with(root) {
            svgpath("M70,50 L90,50 L120,90 L150,50 L170,50 L210,90 L180,120 " +
                    "L170,110 L170,200 L70,200 L70,110 L60,120 L30,90 L70,50") {
                stroke = Color.DARKGREY
                strokeWidth = 2.0
                effect = DropShadow()
            }
        }
    }
}

Capite da voi che il limite è la fantasia!

Enjoy!


Condividi

Commentami!