2023-01-20 294
我们有一个摆动应用程序,该应用程序通过JNiWrapper嵌入IE OCX组件.
从JDK6切换到JDK7后,我们开始注意到焦点问题.当嵌入式IE显示带有文本字段(例如Google搜索页面)的网页时,麻烦开始了:
浏览器”捕获”焦点,因此您可以开始在搜索文本字段中键入.输入的每个键都发送到IE OCX.但是摇摆似乎忽略了这种重点的变化.即使我将焦点更改为秋千文本字段(并且秋千显示闪烁的输入光标),所有键入的键都将转到IE OCX
“修复”重点的唯一方法是将主框架解脱和激活.之后,重点似乎是一致的.但是,如果我再次在Google搜索文本字段中单击,则重点又突破了.
似乎有很大的变化在JDK7中进行焦点处理.来自 link link : /p>
在Windows平台上,已经实现了”合成焦点”的概念.这意味着焦点所有者组件仅模拟其焦点状态,而真实的本机焦点设置为”焦点代理”组件.该组件接收密钥和输入方法本机消息并将其分配给焦点所有者.在JDK7之前,焦点代理组件是框架/对话框内的专用隐藏子组件.在JDK7中,帧/对话框本身是焦点代理.现在,它不仅要专注于拥有的窗口中的组件,还集中在所有儿童组件中.一个简单的窗口永远不会收到本地焦点,并且依赖于其所有者的焦点.这种机制对于用户是透明的,但在调试时应考虑.
任何人都有”解决”行为的想法?
编辑:在这里一些代码可以用 jxbrowser /p>
public static void main(String[] args) {
Browser browser = BrowserFactory.createBrowser(BrowserType.IE);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(browser.getComponent(), BorderLayout.CENTER);
JPanel panel = new JPanel();
frame.getContentPane().add(panel, BorderLayout.NORTH);
textField = new JTextField();
panel.add(textField);
textField.setColumns(10);
frame.setSize(700, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
browser.navigate("http://www.google.com");
}
所有 – 我们只是用另一个浏览器组件(DJProject Antial Swing)遇到了这个问题.在Java 1.6下,一切正常,但是在Java-7下,我们开始看到奇怪的问题,您可以在其中输入输入框,但是如果您选择后退以修复错字,则在单击鼠标后无法输入.要恢复,您必须选择输入字段,然后返回以继续您的编辑.
参见
特别是关于Sythentic Focus和Focus代理的部分.
无论如何,要缩短一个短篇小说 – 在我们的情况下,我能够通过将鼠标侦听器附加到jwebbrowser.getnativecomponent()来找到工作障碍.然后在MousePressed上执行浏览器.requestFocus(),然后是浏览器.
尝试查看 focuslistener and windowfocuslistener 实施摇摆组件本身或Jframe的听众.每当呼叫focusLost(..)>时,您都可以在窗口或组件上使用requestFocus()迫使焦点返回.
我终于找到了一个工作解决方法.在弄清是什么原因引起的时,注意到单击另一个组件(即jlabel)并在文本字段上单击”恢复正常”.因此,我使用AWT机器人类复制了该行为.在中查看更多详细信息.
以上所述是小编给大家介绍的关注JDK7和本机组件的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/26074.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态