在Scala中设置处理

时间:2018-12-14 14:01:33

标签: scala processing

嗨,我正在尝试使用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() = {}

}

1 个答案:

答案 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一无所知,因此它可能不是理想的解决方案。