将ChangeListener添加到JavaFXTextField以获取scala中的焦点信息
我试图将ChangeListener添加到文本字段,但出现错误 这是我试过的例子将ChangeListener添加到JavaFXTextField以获取scala中的焦点信息,scala,javafx,Scala,Javafx,我试图将ChangeListener添加到文本字段,但出现错误 这是我试过的例子 class MyTextField() extends TextField { val change: javafx.beans.value.ChangeListener[Boolean] = new TextFieldChangeListener focusedProperty().addListener(change) class TextFieldChangeListener extends
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")
}
}
}
但我在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])
重载的方法值addListener和可选项:(x$1:
javafx.beans.value.ChangeListener[\u>:java.lang.Boolean])单位
(x$1:javafx.beans.InvalizationListener)单元不能应用于
(javafx.beans.value.ChangeListener[scala.Boolean])
原因可能是
scala.Boolean
和java.lang.Boolean
,但我不确定这一点。在java中,Boolean
表示java.lang.Boolean
(如果没有其他说明)。在Scala中,它的意思是Scala.Boolean
focusedProperty()
,作为一个JavaFX方法,显然对scala.Boolean一无所知。“原因可能是scala.Boolean和java.lang.Boolean,但我不确定。”是的
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])