JavaFXライブラリを使用して自分のWebブラウザアプリケーションをJavaで作成する過程で、WebViewが他のクラスのカーソル変更を上書きする傾向があることがわかりました。私はUNDECORATEDウィンドウタイプを使用しているので、私の計画は、ウィンドウサイズ変更機能を模倣するカスタムサイズ変更クラスを作成することです。これは、カーソルを「サイズ変更」タイプに変更することを含む。しかし、これはうまくいきますが、WebView要素には境界線がなく、計画もしていないためです。カーソルの変更を無効にします。私はWebViewのカーソル更新のイベントを見つけることができませんでした。JavaFX - WebViewのカーソル変更をオーバーライド
要約:どのようにして強制的にカーソルを変更できますか(WebViewをオーバーライドする)。
注:
java.lang.StackOverflowError
at javafx.scene.Node$MiscProperties$6.invalidated(Node.java:6459)
at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:111)
at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:145)
at javafx.css.StyleableObjectProperty.set(StyleableObjectProperty.java:82)
at javafx.scene.Node.setCursor(Node.java:1160)
at to.us.thedjcreeper.thelightweb.nodes.WebTab.lambda$new$1(WebTab.java:28)
at to.us.thedjcreeper.thelightweb.nodes.WebTab$$Lambda$98/1896727623.changed(Unknown Source)
at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:182)
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:105)
at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:145)
at javafx.css.StyleableObjectProperty.set(StyleableObjectProperty.java:82)
at javafx.scene.Node.setCursor(Node.java:1160)
コード:
webView.cursorProperty().addListener((observable, oldValue, newValue) -> {
if (ResizeHelper.resizing && oldValue != newValue) webView.setCursor(oldValue);
});
私は(私は変更を消費する方法を発見していない)が、これは次のようなエラーが生じたのWebViewはそれを修正した後に戻って、カーソルを変更しようとしています
あなたがHTMLコンテンツを制御することがありますか? – VGR
@VGRはい、私はむしろファイルの内容を変更しないでください。 – TheDJCreeper