У меня есть коллекция ComboBox, объявленная ниже.
val cmbAll = for (i <- 0 to 4) yield new ComboBox(List("---", "Single", "Double"))
И я пытаюсь прослушать один из них через
listenTo(cmbAll(0).selection)
Однако на самом деле я не могу выполнять реакции.
reactions += {
case SelectionChanged(`cmbAll(0)`) => /** action here **/
}
Все они размещены в TabbedPane. Я думаю, это не проблема. Итак, как я могу прослушивать отдельные компоненты внутри коллекции?
Отредактировано
Это более полный код, который я пытаюсь использовать в Eclipse.
import scala.swing._
import scala.swing.event._
object CMBTest extends SimpleSwingApplication {
lazy val ui = new TabbedPane {
import TabbedPane._
val cmbCategory = for (i <- 0 to 4) yield new ComboBox(List("---", "Single", "Double"))
val cmbTab = new GridBagPanel {
import GridBagPanel._
val c = new Constraints
c.insets = new Insets(5, 5, 5, 5)
for (i <- 0 to 4) {
c.gridx = 0
c.gridy = i
layout(cmbCategory(i)) = c
}
}
pages += new Page("CMBTest", cmbTab)
listenTo(cmbCategory(0))
reactions += {
case SelectionChanged(`cmbCategory(0)`) => {
println("This is cmbCategory(0) calling")
}
}
}
def top = new MainFrame {
title = "ComboBox Array Test"
contents = ui
}
}
Это сообщение об ошибке, которое у меня есть, находится в части реакции, и в нем говорится, что «не найдено: значение cmbCategory (0)».