Java多线程对象传递的问题

img


这是我自定义的线程类,当它被实例化时,

img


会相应地实例化我的另一个自定义类ChatPanel,并把对象保存在变量CP中
在类ChatPanel中有个鼠标监听器,当它被触发时,会将ISsend属性置为true

img


同时在我的自定义线程类的run方法中,将监听这个属性

img

但是实际情况,这个CP.ISsend却始终为false,即使监听器被正常触发,请问是我传递的对象有问题吗

看鼠标监听和启动的线程是不是同一个线程

isSend改成AtomicBoolean类型

AtomicBoolean isSend = new AtomicBoolean(false);

赋值是这样的isSend.set(true);

1.布尔值,直接用if(this.CP.ISsend)就行了;
2.对象中的这些值最好设置为私有,用get和set的方式获取和修改值;
3.状态的改变,最好用回调的方式来处理,用while(true)的方式很占CPU;
4.监听器触发后,可以跟踪打印一下ISsend,看是否确实置为true;