gpt4 book ai didi

java - 尝试使用 JavaFX 2 实现 "Caret Browsing"

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:14:16 25 4
gpt4 key购买 nike

我正在尝试使用 JavaFX 2.0 编写一个应用程序,其中包含一个 Web 浏览器控件,允许用户仅使用键盘 浏览 HTML 页面上的文本和图像——基本上就像Internet Explorer 中的“插入符号浏览”。

目标是能够选择一些文本或图像并将它们复制到一个变量中,以便在不使用鼠标的情况下进行进一步操作。

我在这里查看了 HTMLEditor 控件: http://docs.oracle.com/javafx/2.0/ui_controls/editor.htm#CHDBEGDD但我不需要任何使 UI 困惑的编辑功能,并且文档说:

The formatting toolbars are provided in the implementation of the component. You cannot toggle their visibility.

WebView 似乎是一个合乎逻辑的选择 ( http://docs.oracle.com/javafx/2.0/webview/jfxpub-webview.htm ),但我不确定如何将光标放到页面上。

如有任何建议,我们将不胜感激。

最佳答案

当前 WebView 对插入符号浏览的支持对我来说充其量只是零散的。

这是我在运行快速测试时发现的:

  1. 我可以调用 webView.requestFocus 让 WebView 请求焦点以响应按键,但它只是在整个 WebView 上运行,而不是在 WebView 中的各个组件上运行。
  2. WebView 没有实现类似于 TextInputControl 的选择管理 API用于选择的细粒度程序化管理。
  3. WebView 允许您选择文本。但是,我必须通过鼠标拖动来启动选择,然后我可以使用键盘来扩大或缩短选择(按字符选择的字符向左或向右箭头键,按字符选择的 ctrl + 向左或向右箭头键单词选择 - 向上和向下箭头不影响选择)。
  4. 在 WebView 中选择一些文本后,我可以在上面按 Ctrl-C(在 Windows 中)将其复制到剪贴板并将文本粘贴到另一个程序中。仅复制原始文本 - 未复制关联的样式/html 信息和图像。
  5. 要复制图像,我必须右键单击图像并从下拉菜单中选择“复制图像”,然后才能将图像粘贴到 MS Paint 中——如果没有鼠标,我无法找到执行此操作的方法。
  6. 在其他浏览器中,我可以按 TAB 和 Shift + TAB 从一个超链接转到下一个 - 在 WebView 中,一旦它获得焦点,TAB 就会从一个控件(例如 WebView 中的 html 文本字段)转到接下来(例如,文本字段中的 html 按钮)。
  7. 退格键在其他浏览器中的作用与其他浏览器相同(带您回到上一页)。

上述限制以及我未测试的其他限制可能会使您难以完成您正在尝试做的事情。您可以尝试使用 eventfilter 捕获按键事件之类的东西,然后生成鼠标事件以启动选择和复制过程,但这对我来说听起来很难,即使那样,目前 JavaFX 中也没有公共(public) API 来生成鼠标事件,只有一个不稳定的 com.sun应用程序接口(interface)。

WebView 确实公开了一个 document object model , 文档是 scriptable by JavaScript .尝试使用事件过滤器捕获关键事件,监听文档属性的变化,并在适当的时候对 WebView 执行 JavaScript 以获取和设置当前选择。这似乎也有点难以实现。

http://javafx-jira.kenai.com 上使用当前的 WebView 控件和公共(public) API 和日志问题尽可能多地完成任务当你遇到缺点时。

关于java - 尝试使用 JavaFX 2 实现 "Caret Browsing",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9357274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com