Настройка обработки в scala - PullRequest
0 голосов
/ 14 декабря 2018

Привет! Я пытаюсь настроить обработку с помощью scala, и я получаю эти ошибки внутри def main

. Значение перегруженного метода add с альтернативами: (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 голосов
/ 14 декабря 2018

Давайте обработаем ошибку!

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): он вызывался с чем-то другим, изclass Demoo.Starfield.

Действительно, .add(app) использует приложение в качестве параметра, который относится к классу Starfield, так что все это имеет смысл.

Итак, вам нужно убедиться, что Starfield принадлежит к одному из двух принятых интерфейсов, например, вы можете изменить свой класс следующим образом:

class Starfield extends java.awt.Component { 

Отказ от ответственности: я абсолютно ничего не знаю оjava.awt, так что это может быть не идеальное решение.

...