在javafx中搜索并突出显示webview中的文本

时间:2012-12-07 07:44:02

标签: javafx-2 javafx

我已经在Web引擎中加载了本地html文件。我需要在网页视图页面中搜索并突出显示给定的字符串 有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

如果您不介意使用反射,可以使用Java代码本地完成。

WebEngine有一个WebPage类型的私有字段页面,而这个页面又有这个方法可以完全符合您的要求:

// Find in page
public boolean find(String stringToFind, boolean forward, boolean wrap, boolean matchCase) {
    // ...
}

因此,要访问此find()方法,您必须执行以下操作:

WebView webView = new WebView();
WebEngine engine = webView.getEngine();

try {
    Field pageField = engine.getClass().getDeclaredField("page");
    pageField.setAccessible(true);

    WebPage page = (com.sun.webkit.WebPage) pageField.get(engine);
    page.find("query", true, true, false);
} catch(Exception e) { /* log error could not access page */ }