关于Swing控件的渲染问题
例子:
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");
}
} } });

浙公网安备 33010602011771号