例子:
final JButton btn = new JButton(); btn.setText("OK"); btn.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) { btn.setEnale("false"); system.out.print("执行代码段...."); btn.setEnale("true"); } });
上面这段代码无法实现让按钮变灰的效果。
原因:因为按钮变灰的相当于重新渲染,而重新渲染需要另外启一个线程,当现在代码执行的情况是,渲染是在主线程中执行,所以没有效果。
正确应该多开一个线程,代码如下:
final JButton btn = new JButton(); btn.setText("OK"); btn.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) {
new Thread(){
public void run(){
btn.setEnale("false");
system.out.print("执行代码段...."); btn.setEnale("true");
}
} } });