如题。近来看《Java编程思想》,里面提及Swing是线程不安全的,最好用SwingUtilities.invokeLater()来更新界面,形如:final JLabel label = new JLabel("a label");
SwingUtilities.invokeLater(new Runnable() {
public void run() {
label.setText("label text is changed");
}
});
另外还想请教:
如果不用SwingUtilities.invokeLater(),而改用ReentrantLock,比如:JLabel label = new JLabel("a label");
ReentrantLock lock = new ReentrantLock();
lock.lock();
try {
label.setText("label text is changed");
} finally {
lock.unlock();
}这样能否使Swing的界面更新变成线程安全?请指点下谢谢
SwingUtilities.invokeLater(new Runnable() {
public void run() {
label.setText("label text is changed");
}
});
另外还想请教:
如果不用SwingUtilities.invokeLater(),而改用ReentrantLock,比如:JLabel label = new JLabel("a label");
ReentrantLock lock = new ReentrantLock();
lock.lock();
try {
label.setText("label text is changed");
} finally {
lock.unlock();
}这样能否使Swing的界面更新变成线程安全?请指点下谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货