我正在浏览大型Swing
GUI应用程序的源代码。
我注意到他们想要在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
?