gpt4 book ai didi

swing - Scala Swing 脚本不工作

转载 作者:行者123 更新时间:2023-12-01 08:22:30 28 4
gpt4 key购买 nike

我刚开始学习 Scala,作为学习过程的一部分,我一直在尝试使用 Swing 编写一些简单的脚本。

这是一个非常精简的例子,它展示了我所看到的问题。

SimpleSwingApp:

import scala.swing._
object SimpleSwingApp extends SimpleSwingApplication {
def top = new MainFrame {
println ("Starting")
title = "First Swing App"
contents = new Button { text = "Click me" }
}
}

当我通过 Eclipse Scala IDE 将脚本作为 Scala 应用程序运行时,一切都按预期工作。我将预期的“开始”文本打印到 Eclipse 控制台,然后弹出小 GUI 并等待点击。

当我尝试从命令行将其作为脚本运行时,我什么也没得到。

> scala SimpleSwingApp.scala

没有错误消息,没有“正在启动”,没有 GUI。

那么发生了什么,我怎样才能达到我想要的结果(即从命令行启动 Scala GUI 脚本)?

最佳答案

问题是 Scala 脚本运行程序正在您的脚本文件中寻找 main 方法,但没有找到。

它找不到的原因是因为您从 SimpleSwingApplication 继承了 main,所以您的脚本文件中没有 main 方法。

您可以通过向脚本添加一个立即调用 super.main 的 main 方法来解决该问题,如下所示:

import scala.swing._
object SimpleSwingApp extends SimpleSwingApplication {

override def main(args: Array[String]) = super.main(args)

def top = new MainFrame {
println("Starting")
title = "First Swing App"
contents = new Button { text = "Click me" }
}
}

现在,脚本不会在 Scala IDE 中引发错误,可以通过调用来执行

scala SimpleSwingApp.scala 

而不是不那么美观

scala -i SimpleSwingApp.scala -e "SimpleSwingApp.main(args)"

关于swing - Scala Swing 脚本不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12097945/

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