Может ли кто-нибудь сказать мне, какова фактическая разница между этими двумя кодами, поскольку они оба дают одинаковый результат?invokeAndWait Java
code1:
public class JLabelDemo extends JApplet {
public void init() {
this.setSize(400, 400);
ImageIcon ii = new ImageIcon("Flock_icon.png");
JLabel jl = new JLabel("<<--- Flock_icon", ii, JLabel.CENTER);
add(jl);
}
}
Кодекса2:
public class JLabelDemo extends JApplet {
private static final long serialVersionUID = 1L;
public void init() {
this.setSize(400, 400);
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
makeGUI();
}
});
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private void makeGUI() {
ImageIcon ii = new ImageIcon("Flock_icon.png");
JLabel jl = new JLabel("<<--- Flock_icon", ii, JLabel.CENTER);
add(jl);
}
}
Я действительно не нашел никакой разницы между выходами сгенерированных. Но я не могу понять код.
Так может ли кто-нибудь дать мне реальный пример метода invokeAndWait?
См. [This] (http://stackoverflow.com/a/5500371/264775) ответ - это связано с тем, как события обрабатываются в Swing. – thegrinner
Я думаю, что вы не проверили другие ответы в SO. Проверьте эти ответы [Ответы1] (http://stackoverflow.com/questions/7196889/swingutilities-invokelater) и [Ответ2] (http://stackoverflow.com/questions/5499921/invokeandwait-method-in-swingutilities) – Garry