Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java requestInWindow有时不工作_Java_Swing_Focus_Invokelater - Fatal编程技术网

Java requestInWindow有时不工作

Java requestInWindow有时不工作,java,swing,focus,invokelater,Java,Swing,Focus,Invokelater,Java中的requestInWindow有一个问题,当文本字段的容器变得可见时,我需要关注文本字段 它有时可以工作,但有时gui会因为操作系统操作而运行缓慢。例如,如果防病毒软件正在扫描计算机,程序的响应速度会有点慢 这里就是这样。如果操作系统没有做任何繁重的工作,requestInWindow可以正常工作,否则就不行 所以我想知道,有没有一种方法可以绝对确定现在JTextField是可见的,然后我们可以在那一刻启动requestInWindow。我尝试了很多东西,比如SwingUtiliti

Java中的
requestInWindow
有一个问题,当文本字段的容器变得可见时,我需要关注文本字段

它有时可以工作,但有时gui会因为操作系统操作而运行缓慢。例如,如果防病毒软件正在扫描计算机,程序的响应速度会有点慢

这里就是这样。如果操作系统没有做任何繁重的工作,
requestInWindow
可以正常工作,否则就不行

所以我想知道,有没有一种方法可以绝对确定现在
JTextField
是可见的,然后我们可以在那一刻启动
requestInWindow
。我尝试了很多东西,比如
SwingUtilities.invokeLater
SwingWorker


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

没有在您描述的所有情况下测试这一点,但是如果您想在窗口可见之前指定具有焦点的组件,那么您可以尝试使用来自的
RequestFocusListener
方法

我不明白为什么运行缓慢的计算机会引起问题。只要确保所有代码都在EDT上执行,它就应该工作