0

requestInWindow在 Java 中遇到了一个问题,当它的容器变得可见时,我需要将注意力集中在一个文本字段上。

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

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

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

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

4

1 回答 1

1

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

我不明白为什么运行缓慢的计算机会导致问题。只要您确保在 EDT 上执行的所有代码都应该可以工作。

于 2013-09-20T04:56:18.453 回答