Я пытаюсь портировать Java-код на Scala.
Я хочу отобразить 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, происходит сбой следующим образом:
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)
Как мне решить эту проблему?