我尝试将ChangeListener添加到TextField但是出现错误。
这是我试过的例子
class MyTextField() extends TextField
{
val change: javafx.beans.value.ChangeListener[Boolean] = new TextFieldChangeListener
focusedProperty().addListener(change)
class TextFieldChangeListener extends ChangeListener[Boolean]
{
override def changed(arg0: ObservableValue[_ <: Boolean], oldPropertyValue: Boolean, newPropertyValue: Boolean)
{
println("Fokus")
}
}
}
这些是我导入的软件包
import javafx.beans.value.ObservableValue
import javafx.beans.value.ChangeListener
import javafx.scene.control.TextField
但是我在eclipse中遇到以下错误:
overloaded method value addListener with alternatives: (x$1:
javafx.beans.value.ChangeListener[_ >: java.lang.Boolean])Unit <and>
(x$1:javafx.beans.InvalidationListener)Unit cannot be applied to
(javafx.beans.value.ChangeListener[scala.Boolean])
原因可能是scala.Boolean
和java.lang.Boolean
,但我对此并不确定。
答案 0 :(得分:0)
在Java中,Boolean
表示java.lang.Boolean
(如果没有导入则说明其他情况)。在Scala中,它意味着scala.Boolean
。 focusedProperty()
,作为一种JavaFX方法,显然无法了解scala.Boolean
。