Java 如何在scala swing应用程序中使用scala.swing.Applet?

Java 如何在scala swing应用程序中使用scala.swing.Applet?,java,swing,user-interface,scala,applet,Java,Swing,User Interface,Scala,Applet,我尝试将一些Java代码移植到Scala 我想在GUI应用程序中显示一个scala.swing.Applet 使用JavaSwing我就可以了 val jframe = new JFrame() jframe.add(APPLET) jframe.setVisible(true) APPLET.setFocusCycleRoot(true) APPLET.init() APPLET.start() 但是使用Scala Swing的代码 def top = new MainFrame {

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

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

使用JavaSwing我就可以了

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对等方添加小程序时,失败如下:

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编写的,而是一个混合小程序和应用程序的简单示例。
JApplet
JFrame
都是,并且
initContainer()
执行公共初始化


请注意,这两个组件都需要适当注意。

找到:scala.swihg.Applet
什么是
swihg
?它像一个在中间打嗝的水龙头吗?如果是打字错误,我建议复制/粘贴I/O相关内容: