JavaFXのWebViewの:どのように私は、デフォルトのカーソルを変更できますか?

ウィリアム・F:

どのように私はWebViewののデフォルトのカーソルを変更できますか?私が作るすべての変更が無視され、アイコンが常にバックデフォルトのポインタに戻ります。

例:

import javafx.application.Application;
import javafx.scene.Cursor;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class Main extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    public void start(Stage primaryStage) {
        primaryStage.setTitle("JavaFX WebView Example");

        WebView webView = new WebView();
        webView.getEngine().loadContent("http://google.com");

        VBox vBox = new VBox(webView);
        Scene scene = new Scene(vBox, 960, 600);

        scene.setCursor(Cursor.CLOSED_HAND); // Doesn't work, reverted to pointer
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

私はまた、変更しようとしたwebViewカーソル自体が、しかし無駄に。

VGR:

あなたはそれをロードした後、ドキュメントのボディスタイルを変更することができるように、ドキュメントのHTMLコンテンツは、カーソルを定義します。

import org.w3c.dom.Document;
import org.w3c.dom.Element;

import javafx.application.Application;
import javafx.concurrent.Worker;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class WebViewCursorOverride extends Application {
    public static void main(String[] args) {
        launch(args);
    }
    public void start(Stage primaryStage) {
        primaryStage.setTitle("JavaFX WebView Example");

        WebView webView = new WebView();
        webView.getEngine().getLoadWorker().stateProperty().addListener(
            (o, old, state) -> {
                if (state != Worker.State.SUCCEEDED) {
                    return;
                }

                Document doc = webView.getEngine().getDocument();
                Element body = (Element)
                    doc.getElementsByTagName("body").item(0);
                String style = body.getAttribute("style");
                body.setAttribute("style", "cursor: grab;" + style);
            });
        webView.getEngine().load("https://google.com");

        VBox vBox = new VBox(webView);
        Scene scene = new Scene(vBox, 960, 600);

        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

また、画像から独自のカーソルを作成することができます。

body.setAttribute("style",
    "cursor: url('https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Pixel_51_icon_cursor_click_top_right.svg/36px-Pixel_51_icon_cursor_click_top_right.svg.png') 27 9, default;" + style);

完全な定義cursorCSSプロパティがあり、ここでここでは事前に定義されたカーソルの現在のリストです。それらのすべてがすべてのシステムでサポートされていません注:

  • オート
  • デフォルト
  • なし
  • コンテキストメニュー
  • 助けて
  • ポインタ
  • 進捗
  • 待つ
  • 細胞
  • 十字線
  • テキスト
  • 垂直方向のテキスト
  • エイリアス
  • コピー
  • 動き
  • ノードロップ
  • 禁止されている
  • つかむ
  • グラブ
  • 電子リサイズ
  • n型サイズ変更
  • どのようなサイズ変更
  • NW-サイズ変更
  • Sサイズ変更
  • SE-サイズ変更
  • SW-サイズ変更
  • W-サイズ変更
  • 彼らは、サイズを変更します
  • NS-サイズ変更
  • NESWサイズ変更
  • NWSEサイズ変更
  • COL-サイズ変更
  • 行サイズ変更
  • すべてのスクロール
  • ズームイン
  • ズームアウトする

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=407344&siteId=1