Я читал эту главу из Scala book, и он говорит, что:классы Дело в Scala свинг
нажатием кнопки создать событие, которое является экземпляром класса следующего случая:
case class ButtonClicked(source: Button)
Параметр класса case относится к нажатой кнопке. Как и во всех других событиях Scala Swing, этот класс событий содержится в пакете с именем scala.swing.event.
, а затем этот код, где Ъ фактическая кнопка, которая была нажата:
case ButtonClicked(b) => //code
Я посмотрел на API и достаточно точно, был конструктор ButtonPressed:
new ButtonClicked(source: AbstractButton)
Так что же происходит с событием мыши, например mousePressed? Вы обычно делаете это в коде:
1) case e: MousePressed => // code//
Означает ли это, что ниже, также может быть сделано? Они одинаковы?
2) case MousePressed(e: java.awt.event.MouseEvent)
В чем разница между 1 и 2?
EDIT:
Is 1) также случай класса? Вам не нужно передавать в него параметр?
Примеры классов и соответствия шаблону являются общими (и широко используемыми) функциями Scala, они не специфичны для Scala Swing. Вы можете прочитать о них [в другой главе книги, которую вы указали) (http://www.artima.com/pins1ed/case-classes-and-pattern-matching.html) или, вероятно, лучше с точки зрения повышения на-главную, на главной странице [Scala doc] (http://docs.scala-lang.org/tutorials/tour/case-classes.html). –
Спасибо.Мне интересно, но почему MousePressed - это класс case, когда вы пишете его как 1)? Вам не нужно передавать ему ничего, как в классе Case EditDone. – SonicProtein
Хорошо, это на самом деле оправдывает ответ;). –