Ich benutze Kotlin TornadoFX, um einen Browser zu erstellen. Als ich WebEngine setCreatePopupHandler implementieren, bekomme ich einen Fehler:Wie man TornadoFX WebEngine Callback in Kotlin implementiert
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!
verweisen ich diesen Java-Code mit JavaFX:
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();
}
});
in Kotlin übersetzt TornadoFX zu verwenden:
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
}
})
ich gewesen sein Ich habe lange im Internet gesucht, aber nichts gefunden. Bitte kann mir jemand helfen, diesen Fehler zu beheben.
Zuerst habe ich bin sehr überrascht TornadoFX Entwickler meine Frage zu beantworten. ich danke dir sehr. Dieses Problem ließ mich von TornadoFX ver 1.5.7 ändern, um ver1.7.5, Ergebnis ouccer andere ver Problem, so dass ich wieder ver1.5.7 ändern und versuchen Sie Ihre Beratung Methode kompilieren. BUILD SUCCESSFUL hat mein Problem gelöst. danke nochmal :) –
Großartig! Wenn Sie Probleme beim Aktualisieren haben, liegt es wahrscheinlich daran, dass Sie vergessen haben, jvmTarget auf 1.8 zu ändern. Weitere Informationen finden Sie auf der Release-Notes-Seite 1.7.1: https://github.com/edvin/tornadofx/releases/tag/v1.7.1 –
So ist es. Ich verstehe bald nach Ihrer Erklärung. Danke! –