我一直在尝试运行以下 Scala 代码:
import javax.swing.JFrame
class ScalaClass(title: String) extends JFrame(title: String) {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
// ...
}
object Main {
def main(args: Array[String]) : Unit = {
var sFrame : JFrame = new ScalaClass("Hi");
}
}
Run Code Online (Sandbox Code Playgroud)
JFrame.EXIT_ON_CLOSE应等于3. 但是,当我尝试在 IntelliJ IDEA 中构建和运行时,我收到此错误:
Error:(4, 35) value EXIT_ON_CLOSE is not a member of object javax.swing.JFrame
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
添加import javax.swing.JFrame.EXIT_ON_CLOSE也不起作用。
有谁知道我做错了什么?
您需要使用它实际定义的位置, javax.swing.WindowConstants. 当 Java 编译器发现JFrame.EXIT_ON_CLOSE它被重写为WindowConstants.EXIT_ON_CLOSE; Scala 编译器不会这样做(Kotlin 也不会)。
它曾经在 Java 9 中声明过,JFrame但在 Java 9 中被删除;这是 Java 的源代码和二进制兼容的更改,如链接中所述,但与 Scala/Kotlin 不兼容。
| 归档时间: |
|
| 查看次数: |
292 次 |
| 最近记录: |