我正在浏览大型SwingGUI 应用程序的源代码。而且我注意到他们什么时候想做一些事情以防万一focusGained(Focus evn),或者focusLost(Focus evn)他们总是使用invokeLater().
例子:
yourTextField.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
SwingUtilities.invokeLater( new Runnable() {
@Override
public void run() {
yourTextField.selectAll();
}
});
}
});
为什么invokeLater这里需要?