光标在两个字段中闪烁 (JTextField)



你好? 有人遇到过这样的问题:光标一次在多个字段中闪烁?在我的情况下,会发生以下情况:当您双击字段 JTextField 时,会打开一个 JDialog,因此关闭此按钮后,焦点将定向回打开屏幕之前单击的字段。

发生的情况是,执行此操作后,两个字段同时闪烁(通常是第一个字段屏幕,以及 efetuei 双击的字段)。这种媒介是随机的,在某些情况下不会发生。

调试内部类处理程序时,包含在类 DefaultCaret 中更具体地说是 actionPerforming 方法,实现了那:时间是一个场,时间是另一个,这正是闪烁的场(我知道q似乎很明显)。但他们是调用该方法的自己的 Java 内部类。

使用 Tab 跳过字段时,光标 false 消失。

我正在使用 JDK 6


我在 invokeLater() 中返回了焦点,但没有解决。现在两个同步闪光灯

第一个 JComponent 可聚焦是闪烁不正确的字段之一

我正在使用自己的FocusTraversalPolicy,这可能会产生影响吗?有趣的是,我的班级没有特别奇怪的待遇。

我注意到标准的Java类,使用同步getFirstComponent()中的方法,但添加了相同的控件,但仍然不行

实际上这

对我来说是焦点问题。

通常,当JTextComponent失去焦点时,setCaretVisible(false)/setSelectionVisible(false)被调用,当焦点获得相反的事情发生时。

关闭JDialog后尝试将焦点返回到invokeLater()内。还要检查JDialog父级中的第一个可聚焦JComponent是什么。

出现这种情况是因为我正在开发的项目非常大,所以不要得到实现的小例子

该项目有许多组件,表和容器,需要同时关注。

事实证明,Swing,放入一个队列执行,很多线程,然后调度它们去,虽然他没有完成运行它,但你可以塞满grabFocus()或requestFocus(),它不会哭,首先他必须完成所有事情,然后运行我的请求焦点。

使用Swing

SwingUtilities.invokeLater(...)姑息地解决了这种情况;

感谢您的提示。

最新更新