<AI>
JavaFXのWebView上のクリックを検出し、該当行の内容を取得するには、
JavaScriptとJavaを連携させるブリッジ機能(WebEngine.executeScriptなど)を利用するのが一般的です。
具体的な実装方法は以下の通りです。
1. Java側での実装
WebViewにJavaScriptのインターフェースオブジェクトを登録し、クリック時にそのメソッドを呼び出すように設定します。
java
// Java側:ブリッジ用のクラスを作成し、WebViewに登録する
public class JavaBridge {
public void showRowContent(String rowContent) {
System.out.println("クリックされた行の内容: " + rowContent);
}
}
// WebViewの読み込み完了時に登録
webEngine.getLoadWorker().stateProperty().addListener((obs, old, newV) -> {
JSObject window = (JSObject) webEngine.executeScript("window");
window.setMember("javaBridge", new JavaBridge());
});
2. HTML(WebView側)の実装
HTMLの onclick イベントで、登録した javaBridge を経由してJavaメソッドを呼び出し、テキストを渡します。
html
内容1
this.innerText を使用してクリックされた要素のテキストを取得し、Javaに渡すのが一般的です。
⚠️ 注意点
JavaFX 11以降のモジュールシステム環境下では、リフレクションを許可するためにVM引数へ以下が必要となる場合があります:
--add-opens javafx.web/com.sun.webkit=ALL-UNNAMED