我在Scala程序中使用Java Swing API中的addChangeListener
。 ScalaFiddle的编译器在以下代码中指示错误:
spinner_1.addChangeListener(e => {
...
})
错误:缺少参数类型 spinner_1.addChangeListener(e => {
我试着写e : ChangeListener
,但它没有解决这个问题。我没有在Scala的文档中找到有用的东西。
我怎么处理它?</ p>
答案 0 :(得分:3)
适用于Scala 2.12。但是如果你必须使用像2.11这样的旧版本,你可以使用隐式转换。这是一个例子:
import javax.swing.JTabbedPane
import javax.swing.event.{ChangeEvent, ChangeListener}
implicit def convertToChangeListener(f: ChangeEvent => Unit): ChangeListener =
new ChangeListener {
override def stateChanged(e: ChangeEvent): Unit = f.apply(e)
}
val listener: ChangeListener = (e: ChangeEvent) => ...
new JTabbedPane().addChangeListener(listener)