多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
JxBrowser API提供的功能允许将键盘事件转发到当前加载的网页上当前关注的元素。 当您需要以编程方式将键盘事件发送到网页时,此功能非常有用。例如,如果您开发一个基于 Web的Kiosk Java应用程序 ,该应用程序应该在带有触摸屏监视器且没有物理键盘的终端/ PC上运行,您可能希望显示自己的屏幕键盘。最终用户将使用此屏幕键盘在已加载的网页上键入。在这种情况下,屏幕键盘可以使用此功能以编程方式将适当的键事件转发到当前加载的网页。 以下示例演示如何以编程方式将键盘事件发送到文本类型,并在加载的网页上的当前聚焦文本区域中按Enter键: ``` import com.teamdev.jxbrowser.chromium.*; import com.teamdev.jxbrowser.chromium.BrowserKeyEvent.KeyCode; import com.teamdev.jxbrowser.chromium.BrowserKeyEvent.KeyModifiers; import com.teamdev.jxbrowser.chromium.BrowserKeyEvent.KeyModifiersBuilder; import com.teamdev.jxbrowser.chromium.events.FinishLoadingEvent; import com.teamdev.jxbrowser.chromium.events.LoadAdapter; import com.teamdev.jxbrowser.chromium.swing.BrowserView; import javax.swing.*; import java.awt.*; import static com.teamdev.jxbrowser.chromium.BrowserKeyEvent.KeyCode.*; import static com.teamdev.jxbrowser.chromium.BrowserKeyEvent.KeyEventType.*; /** * This sample demonstrates how to create and forward keyboard events * containing characters, modifiers, and control keys to Chromium engine. */ public class ForwardKeyEventsSample { public static void main(String[] args) { Browser browser = new Browser(); BrowserView view = new BrowserView(browser); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.add(view, BorderLayout.CENTER); frame.setSize(700, 500); frame.setLocationRelativeTo(null); frame.setVisible(true); browser.addLoadListener(new LoadAdapter() { @Override public void onFinishLoadingFrame(FinishLoadingEvent event) { if (event.isMainFrame()) { Browser browser = event.getBrowser(); // Sending 'Hello' to the currently focused textarea forwardKeyEvent(browser, VK_H, 'H'); forwardKeyEvent(browser, VK_E, 'e'); forwardKeyEvent(browser, VK_L, 'l'); forwardKeyEvent(browser, VK_L, 'l'); forwardKeyEvent(browser, VK_O, 'o'); // Sending 'Enter' to insert a line break forwardKeyEvent(browser, VK_RETURN); // Selecting text in the textarea using Ctrl+A shortcut forwardKeyEvent(browser, VK_A, new KeyModifiersBuilder().ctrlDown().build()); } } }); browser.loadHTML("<textarea autofocus rows='10' cols='30'></textarea>"); } private static void forwardKeyEvent(Browser browser, KeyCode code, char character) { browser.forwardKeyEvent(new BrowserKeyEvent(PRESSED, code, character)); browser.forwardKeyEvent(new BrowserKeyEvent(TYPED, code, character)); browser.forwardKeyEvent(new BrowserKeyEvent(RELEASED, code, character)); } private static void forwardKeyEvent(Browser browser, KeyCode code) { browser.forwardKeyEvent(new BrowserKeyEvent(PRESSED, code)); browser.forwardKeyEvent(new BrowserKeyEvent(TYPED, code)); browser.forwardKeyEvent(new BrowserKeyEvent(RELEASED, code)); } private static void forwardKeyEvent(Browser browser, KeyCode code, KeyModifiers modifiers) { browser.forwardKeyEvent(new BrowserKeyEvent(PRESSED, code, modifiers)); browser.forwardKeyEvent(new BrowserKeyEvent(TYPED, code, modifiers)); browser.forwardKeyEvent(new BrowserKeyEvent(RELEASED, code, modifiers)); } } ```