By Alvin Alexander. Last updated: August 29, 2022
If you’re interested in seeing a Scala 2 version of Oracle’s JavaFX “Hello, world” application, here you go:
package hello
import javafx.application.Application
import javafx.event.ActionEvent
import javafx.event.EventHandler
import javafx.scene.Scene
import javafx.scene.control.Button
import javafx.scene.layout.StackPane
import javafx.stage.Stage
object HelloWorld
{
def main(args: Array[String])
{
Application.launch(classOf[HelloWorld], args: _*)
}
}
class HelloWorld extends Application
{
override def start(primaryStage: Stage)
{
primaryStage.setTitle("Hello World!")
val btn = new Button
btn.setText("Say 'Hello World'")
btn.setOnAction((e: ActionEvent) => {
println("Hello World!")
})
val root = new StackPane
root.getChildren.add(btn)
primaryStage.setScene(new Scene(root, 300, 250))
primaryStage.show
}
}
All I did was to convert their Java version of the “Hello, world” JavaFX program to Scala. That sounds easy, but there was a little trick in getting that main method working properly. Feeling lazy, I didn’t try to figure it out, and just Google’d until I found this solution on SO.
I don’t know if I’ll keep going down this road or not, but if I do, I may use the ScalaFX project instead of using Scala with JavaFX. It looks pretty cool, though at the moment I don’t know how well supported it is.

