加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

开始Scala JavaFX桌面应用程序开发

发布时间:2020-12-16 09:33:05 所属栏目:安全 来源:网络整理
导读:有没有一些指导或演练来构建Scala JavaFX桌面应用程序? 我很难找到一个好的源码,我正在使用IntelliJ IDEA作为IDE。 即使是最简单的桌面问候世界样本也会有很大的帮助,因为我很少有线索从哪里开始。 更新:这是我现在的: import javafx.application.Appli
有没有一些指导或演练来构建Scala JavaFX桌面应用程序?

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

即使是最简单的桌面问候世界样本也会有很大的帮助,因为我很少有线索从哪里开始。

更新:这是我现在的:

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))
    primaryStage.show()
  }
}

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

运行它应该得到:

这是Java中的一个正式的hello world示例: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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读