我知道这是有问题的,我已经使用了论坛中提供的一些解决方案/示例,但它们似乎无法为我工作。
基本上我有JInternalFrames,它包含JTextAreas,我希望它当JInternalFrame是可见焦点时,即光标放在JTextArea上,而不是用户必须通过点击JTextArea手动放置光标。
以下是我尝试的解决方案:
解决方案1:
textAreaUName.requestFocus(true);
解决方案2:
textAreaUName.requestFocus(true);
textAreaUName.requestFocusInWindow();
如果您已经分别看到问题,请再次道歉。
感谢任何想法。
答案 0 :(得分:1)
这将把焦点设置在一个非空且可聚焦的JComponent上。
public final void requestFocus(final JComponent component)
{
Runnable r = new Runnable() {
@Override
public void run() {
while (!component.isFocusOwner()) {
component.requestFocusInWindow();
try {
Thread.sleep(1);
} catch (InterruptedException ex) {
Logger.getLogger(TestFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
};
if(component!=null&&component.isFocusable())
{
Executors.newCachedThreadPool().execute(r);
}
}