一种思想流派说,当 windowOpened 事件触发时,添加一个窗口侦听器并设置焦点:
addWindowListener(new WindowAdapter(){
public void windowOpened( WindowEvent e){
txtMessage.requestFocus();
}
});
另一种思想流派说使用 SwingUtilities.invokeLater 方法在单独的线程中设置焦点。
SwingUtilities.invokeLater(new Runnable()
{
public void run() {
field.requestFocus();
}
});
谁能告诉我哪个是最佳实践,或者您何时会选择其中一个?使用线程解决方案时,线程是否可能会丢失并且永远不会设置焦点?