Java requestInWindow有时不起作用

时间:2013-09-20 04:53:27

标签: java swing focus invokelater

我在Java中遇到requestInWindow的问题,当容器变得可见时,我需要关注文本字段。

它有时会起作用,但是有些时候因为os操作而导致gui运行缓慢。例如,如果防病毒软件正在扫描计算机,则程序响应速度会有点慢。

这就是这种情况。如果操作系统没有做任何重的事情,requestInWindow工作正常,否则不行。

所以我想知道,有没有办法绝对确定现在JTextField是可见的,那么我们可以在那一刻开始requestInWindow。我尝试了许多内容,例如SwingUtilities.invokeLaterSwingWorker

如果您想知道我为什么需要这个,请查看POS。用户没有时间在鼠标周围移动,试图专注于他们必须输入条形码或支付金额的字段,他们所需要的只是让系统为他们做这些,他们所做的只是按键盘。

1 个答案:

答案 0 :(得分:1)

在您描述的所有情况下都没有对此进行测试,但是如果您想在窗口可见之前指定具有焦点的组件,那么您可以尝试使用Dialog Focus中的RequestFocusListener方法。

我不明白为什么慢速运行的计算机会导致问题。只要你确保所有代码都在EDT上执行就应该有效。