class SpriteSheetProcessorView: View() { private val logger = LogManager.getLogger(SpriteSheetProcessorView::class.simpleName) override val root: Parent = FXMLLoader.load(this.javaClass.classLoader.getResource("views/SpriteSheetView.fxml")) val controller: SpriteSheetProcessorController by inject() val combineButton: Button by fxid() val separateButton: Button by fxid() val packButton: Button by fxid() val tutorialButton: Button by fxid() val canvas: Canvas by fxid() fun drawSprites(sprites: List) { val graphics = canvas.graphicsContext2D sprites.forEachIndexed { idx, sprite -> val writableImage = WritableImage(sprite.width, sprite.height) SwingFXUtils.toFXImage(sprite, writableImage) graphics.drawImage( writableImage, (idx * 100 + sprite.width).toDouble(), 10.toDouble()) } } }