gpt4 book ai didi

scala - Scala + JavaFX 桌面应用程序开发入门

转载 作者:行者123 更新时间:2023-12-03 13:50:44 24 4
gpt4 key购买 nike

是否有构建 Scala + JavaFX 桌面应用程序的指南或演练?

我很难找到一个好的来源,我正在使用 IntelliJ IDEA 作为 IDE。

即使是最简单的桌面 hello world 示例也会有很大帮助,因为我不知道从哪里开始。

更新:这就是我现在所拥有的:

import javafx.application.Application
import javafx.scene.Scene
import javafx.scene.layout.StackPane
import javafx.stage.Stage
import javafx.scene.control.Label

class Test extends Application {
override def start(primaryStage: Stage) {
primaryStage.setTitle("Sup!")

val root = new StackPane
root.getChildren.add(new Label("Hello world!"))

primaryStage.setScene(new Scene(root, 300, 300))
primaryStage.show()
}
}

object Test {
def main(args: Array[String]) {
val t = new Test
t.start(new Stage)
}
}

运行它我得到:

Exception in thread "main" java.lang.IllegalStateException: Not on FX application thread; currentThread = main



如何让它显示带有标签的 hello world 窗口?

最佳答案

编写基于 Scala 的 JavaFX 应用程序时需要了解一些事项。

首先,这是一个示例 hello world 应用程序:

import javafx.application.Application
import javafx.scene.Scene
import javafx.scene.layout.StackPane
import javafx.stage.Stage
import javafx.scene.control.Label

class Test extends Application {
println("Test()")

override def start(primaryStage: Stage) {
primaryStage.setTitle("Sup!")

val root = new StackPane
root.getChildren.add(new Label("Hello world!"))

primaryStage.setScene(new Scene(root, 300, 300))
primaryStage.show()
}
}

object Test {
def main(args: Array[String]) {
Application.launch(classOf[Test], args: _*)
}
}

运行它你应该得到:

enter image description here

这是一个官方的 hello world Java 示例: http://docs.oracle.com/javafx/2/get_started/hello_world.htm

主要区别在于:
  • 您必须使用 def main() 编写所谓的伴随对象。启动实际应用程序。
  • 您必须指定它将在类 Test 的上下文中运行,而不是伴随对象:Application.launch(classOf[Test], args: _*) .

  • 如果您只是尝试使用 Application.launch(args : _*) 直接运行应用程序你会得到这个错误:

    Exception in thread "main" java.lang.RuntimeException: Error: class Test$ is not a subclass of javafx.application.Application



    要了解有关 JavaFX 的更多信息,请阅读官方文档: http://docs.oracle.com/javafx/index.html

    关于scala - Scala + JavaFX 桌面应用程序开发入门,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124657/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com