嗨,我正在尝试使用Scala设置处理,并且在def main中遇到了这些错误
重载的方法值添加选项:(x $ 1:java.awt.Component)java.awt.Component(x $ 1:java.awt.PopupMenu)单位不能应用于(Demoo.Starfield)
如果这不是正确的方法,应该如何设置?
package Demoo
import processing.core._
object Starfield extends PApplet {
private var app:Starfield = _
def main(args: Array[String]) = {
app = new Starfield
val frame = new javax.swing.JFrame("Starfield")
frame.getContentPane().add(app)
app.init
frame.pack
frame.setVisible(true)
}
}
class Starfield {
override def setup() = {}
override def draw() = {}
}
答案 0 :(得分:1)
让我们处理错误!
overloaded method value add
:错误与add
方法的使用有关。唯一的候选人是frame.getContentPane().add(app)
with alternatives: (x$1: java.awt.Component)java.awt.Component (x$1: java.awt.PopupMenu)Unit
:可以使用Component或PopupMenu作为参数来调用此方法。
cannot be applied to (Demoo.Starfield)
:它被其他类Demoo.Starfield
调用。
实际上,.add(app)
使用app作为Starfield
类的参数,因此这一切都说得通。
因此,您需要确保Starfield是两个公认的接口之一,例如,您可以通过以下方式修改您的类:
class Starfield extends java.awt.Component {
免责声明:我对java.awt
一无所知,因此它可能不是理想的解决方案。