2012-09-16 51 views
1

我想設置一個回調在JavaFX的方法:)http://docs.oracle.com/javafx/2/api/javafx/fxml/FXMLLoader.html#setControllerFactory(javafx.util.CallbackJavaFX和回調

這是簽名:

public void setControllerFactory(Callback<java.lang.Class<?>,java.lang.Object> controllerFactory) 

我已經嘗試不同的設置,這是最新的我似乎無法得到它在所有的編譯,總有一些不簽名匹配:

val loader = new FXMLLoader() 
loader.setControllerFactory(new Callback[Class[_], AnyRef] { 

}) 

這一個給我:

error: object creation impossible, since method call in trait Callback of type (x$1: Class[_])AnyRef is not defined 

我該如何在Scala中編寫Java示例?

回答

4

由於錯誤消息說,您需要定義一個方法,你的匿名類:

loader.setControllerFactory(new Callback[Class[_],Object] { 
    def call(c: Class[_]): Object = { 
    // your implementation 
    } 
}) 
+1

它編譯罰款,但由於某種原因回調從不叫什麼名字?我需要在視圖中指定某些內容嗎? – Tower

+0

@rFactor - 不知道。也許這是關於FXMLLoader本身的東西? – Rogach