2015-08-20 77 views
-1

我試圖將ChangeListener添加到TextField,但出現錯誤。將ChangeListener添加到javafx文本字段以獲取scala中的焦點信息

這裏是我試過

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 

包,但我得到以下錯誤在日食:

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.Booleanjava.lang.Boolean但我不確定秒。

+0

「原因可能是scala.Boolean和java.lang.Boolean,但我不確定這一點。」是的 – cchantep

回答

0

在Java中,Boolean表示java.lang.Boolean(如果沒有其他導入說明)。在斯卡拉,這意味着scala.Boolean。作爲JavaFX方法的focusedProperty()顯然不知道關於scala.Boolean的任何內容。

相關問題