gpt4 book ai didi

java - 如何在 Scala Swing 应用程序中使用 scala.swing.Applet?

转载 作者:搜寻专家 更新时间:2023-11-01 03:12:14 25 4
gpt4 key购买 nike

我尝试将一些 Java 代码移植到 Scala。

我想在 GUI 应用程序中显示 scala.swing.Applet

我会使用 Java Swing

val jframe = new JFrame()
jframe.add(APPLET)

jframe.setVisible(true)
APPLET.setFocusCycleRoot(true)

APPLET.init()
APPLET.start()

但是使用 Scala Swing 的代码

def top = new MainFrame {
contents = APPLET
}

不喜欢的类型:

error: type mismatch;
found : scala.swing.Applet
required: scala.swing.Component
contents = APPLET

当我尝试通过 Java 节点添加 Applet 时,失败如下:

def top = new MainFrame {
contents = new Panel() {
peer.add(new SinglePlayerGame)
}
}

我收到此错误消息:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: scala.swing.Applet cannot be cast to javax.swing.JComponent
at scala.swing.Container$Wrapper$$anon$1.componentAdded(Container.scala:43)
at java.awt.Container.processContainerEvent(Container.java:2071)
at java.awt.Container.processEvent(Container.java:2042)
at java.awt.Component.dispatchEventImpl(Component.java:4629)
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Component.dispatchEvent(Component.java:4455)
at java.awt.Container.addImpl(Container.java:1081)
at java.awt.Container.add(Container.java:373)

我该如何解决这个问题?

最佳答案

它不是用 Scala 编写的,而是 Subway是一个混合小程序和应用程序的简单示例。 JAppletJFrame 都是top-level containers , initContainer() 执行公共(public)初始化。

请注意,这两个组件都需要适当注意 Initial Threads .

关于java - 如何在 Scala Swing 应用程序中使用 scala.swing.Applet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7721032/

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