我正在使用Kotlin TornadoFX創建瀏覽器。當我實現WebEngine setCreatePopupHandler,我得到一個錯誤:如何在Kotlin中實現TornadoFX WebEngine回調
webEngine.setCreatePopupHandler(
new Callback<PopupFeatures, WebEngine>() {
@Override
public WebEngine call(PopupFeatures config) {
smallView.setFontScale(0.8);
if (!toolBar.getChildren().contains(smallView)) {
toolBar.getChildren().add(smallView);
}
return smallView.getEngine();
}
});
翻譯成科特林使用TornadoFX:
e: surfing\src\surfing.kt: (76, 13): Modifier 'override' is not applicable to 'local function'
e: surfing\src\surfing.kt: (76, 13): Expected a value of type WebEngine!
我使用JavaFX引用這個Java代碼
var wv = webview()
val br = wv.getEngine()
br.setCreatePopupHandler(Callback<PopupFeatures, WebEngine>() {
override fun call(pf: PopupFeatures): WebEngine {
var smallView = webview()
val stage = Stage(StageStyle.UTILITY)
stage.setScene(Scene(smallView))
stage.show()
val engine = smallView.getEngine()
return engine
}
})
我一直在互聯網上搜索了很長時間,但我沒有找到任何東西。請有人可以幫我解決這個錯誤。
首先我我的建議我非常驚訝tornadoFX開發人員回答我的問題。非常感謝。這個問題讓我從tornadoFX ver 1.5.7更改爲ver1.7.5,導致了其他版本的問題,於是我改回了ver1.5.7並嘗試了你的建議方法編譯它。建立成功解決了我的問題。再次感謝你:) –
太棒了!如果您在升級時遇到問題,可能是因爲您忘記將jvmTarget更改爲1.8。請參閱1.7.1發行說明頁面上的說明:https://github.com/edvin/tornadofx/releases/tag/v1.7.1 –
就這樣。我對你的解釋很快就會明白。謝謝! –