Как я могу создать экземпляр scala.swing.event.MousePressed? - PullRequest
0 голосов
/ 04 августа 2011

Как мне создать экземпляр scala.swing.event.MousePressed? Я попробовал ниже, но он жалуется на конструктор. Объявление MousePressed говорит что-то о компоненте peer ... но я не уверен, как его включить.

import scala.swing.event.MousePressed
import java.awt.Point

object TypeIssue {
 val c = new Label()
 val test = new MousePressed(c, new Point(0,0), 0, 0, 1, false)
}

Ошибка: перегруженный конструктор метода MousePressed с альтернативами: (e: java.awt.event.MouseEvent) scala.swing.event.MousePressed (источник: scala.swing.Component, точка: java.awt.Point, модификаторы: scala.swing.event. Key.Modifiers, клики: Int, triggersPopup: Boolean) (peer: java.awt.event.MouseEvent) scala.swing.event.MousePressed нельзя применять к (scala.swing.Label, java.awt.Point, Int, Int , Int, Boolean)

Ответы [ 2 ]

1 голос
/ 04 августа 2011
val test = 
  new MousePressed(new java.awt.event.MouseEvent(c.peer, 0, 0, 0, 0, 0, 0, false))

Нам нужно new перед MousePressed, потому что мы используем вспомогательный конструктор класса case (хотя почему это необходимо, никогда не объяснялось).

1 голос
/ 04 августа 2011

Разобрался:

import scala.swing.event.MousePressed
import java.awt.Point
import scala.swing.Label

object TypeIssue {
 val c = new Label()
 val test = MousePressed(c, new Point(0,0), 0, 0, false)(new java.awt.event.MouseEvent(c.peer, 0, 0, 0, 0, 0, 0, false))
}
...