【发布时间】:2017-05-21 17:09:02
【问题描述】:
我正在使用 Kotlin TornadoFX 创建浏览器。当我实现 WebEngine setCreatePopupHandler 时,我得到一个错误:
e: surfing\src\surfing.kt: (76, 13): 修饰符 'override' 不是 适用于“局部函数”
e: surfing\src\surfing.kt: (76, 13): 需要一个 WebEngine 类型的值!
我使用 JavaFX 引用了这段 Java 代码:
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();
}
});
翻译成 Kotlin 以使用 TornadoFX:
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
}
})
我在互联网上搜索了很长时间,但没有找到任何东西。请有人帮我解决这个错误。
【问题讨论】:
标签: javafx kotlin javafx-webengine tornadofx