Skip to content

Commit

Permalink
Add JavaFX demo applications and .gitignore files for jbang and kts
Browse files Browse the repository at this point in the history
  • Loading branch information
yostane committed Nov 21, 2024
1 parent ee33bcd commit d31b70e
Show file tree
Hide file tree
Showing 5 changed files with 104 additions and 0 deletions.
1 change: 1 addition & 0 deletions material/scripting/jbang/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.idea/
44 changes: 44 additions & 0 deletions material/scripting/jbang/jfxdemo.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
///usr/bin/env jbang "$0" "$@" ; exit $?

//DEPS org.openjfx:javafx-controls:23
//DEPS org.openjfx:javafx-graphics:23:${os.detected.jfxname}
//DEPS org.openjfx:javafx-fxml:23

import javafx.application.Application
import javafx.geometry.Pos
import javafx.scene.Scene
import javafx.scene.control.Label
import javafx.scene.layout.VBox
import javafx.stage.Stage

class HelloJFXApp : Application() {
private var scene: Scene? = null

override fun start(stage: Stage) {
val javaInfoString = String.format(
"Java: %s, %s , %s",
System.getProperty("java.version"),
System.getProperty("java.vendor"),
System.getProperty("java.vm.version")
)
val jfxInfoString = String.format("JavaFX: %s", System.getProperty("javafx.version"))

val holder = VBox()
holder.isFillWidth = true
holder.alignment = Pos.TOP_CENTER
holder.spacing = 5.0
holder.children.addAll(
Label(javaInfoString),
Label(jfxInfoString),
)

scene = Scene(holder, 400.0, 300.0)
stage.title = "JavaFX Demo"
stage.scene = scene
stage.show()
}
}

fun main() {
Application.launch(HelloJFXApp::class.java)
}
1 change: 1 addition & 0 deletions material/scripting/kts/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.idea/
18 changes: 18 additions & 0 deletions material/scripting/kts/compiler-options.main.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
@file:CompilerOptions("-jvm-target", "1.8", "-Xabi-stability=unstable")

interface Test {
fun print()
fun printSuper() = println("Hi from super")
}

class TestImpl : Test {
override fun print() = println("Hi from sub")
}

fun printRandom() = println("Hi from random")

TestImpl().run {
print()
printSuper()
printRandom()
}
40 changes: 40 additions & 0 deletions material/scripting/kts/jfxdemo.main.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
@file:DependsOn("org.openjfx:javafx-controls:23")
@file:DependsOn("org.openjfx:javafx-graphics:23")

import javafx.application.Application
import javafx.geometry.Pos
import javafx.scene.Scene
import javafx.scene.control.Label
import javafx.scene.layout.VBox
import javafx.stage.Stage


class HelloJFXApp : Application() {
private var scene: Scene? = null

override fun start(stage: Stage) {
val javaInfoString = String.format(
"Java: %s, %s , %s",
System.getProperty("java.version"),
System.getProperty("java.vendor"),
System.getProperty("java.vm.version")
)
val jfxInfoString = String.format("JavaFX: %s", System.getProperty("javafx.version"))

val holder = VBox()
holder.isFillWidth = true
holder.alignment = Pos.TOP_CENTER
holder.spacing = 5.0
holder.children.addAll(
Label(javaInfoString),
Label(jfxInfoString),
)

scene = Scene(holder, 400.0, 300.0)
stage.title = "JavaFX Demo"
stage.scene = scene
stage.show()
}
}

Application.launch(HelloJFXApp::class.java)

0 comments on commit d31b70e

Please sign in to comment.