java中,如何将类A的属性值在类C中传递给类B,并且当类A的属性值发生改变时,类B的这个值也同时改变?

我在用java做画板时,将其分成三个类来写的。两个JPanel类:ButtonPanel,CanvasPanel。一个JFrame主类:SimpleDraw。Button... 我在用java做画板时,将其分成三个类来写的。两个JPanel类:ButtonPanel,CanvasPanel。一个JFrame主类:SimpleDraw。
ButtonPanel专门放按钮,并给按钮添加监听。它有一个int属性的typeFlag,当按下按钮时,typeFlag的值发生改变。
CanvasPanel用做画布,它也有一个int属性的typeFlag,还有一个paint方法。paint方法根据不同的typeFlag值画出不同的图形。
SimpleDraw中分别new出 ButtonPanel 和 CanvasPanel 的实例 bp 和 cp,然后我在它的构造方法中,将bp的typeFlag赋给cp的typeFlag。
经调试,监听都没有问题;bp中 typeFlag的初值,赋到了 cp 中,但点击bp上的按钮却没能将相应的typeFlag值传给cp。(bp的typeFlag值发生了改变)

请问怎样才能实时的将变化了的typeFlag传给cp中,使其能做相应的处理(即按一下按钮做不同的响应)?

PS:以前放在一个类中写是没有问题的。
展开
 我来答
302652034_bai
2014-06-15 · TA获得超过4144个赞
知道大有可为答主
回答量:2206
采纳率:66%
帮助的人:1509万
展开全部
共享一个typeFlag就可以了,在任意类中把typeFlag声明成 public static,其他类直接通过该类类名访问这个变量。
追问
嗯,多谢,你的回答点醒了我。我将ButtonPanel类中的typeFlag设成了static,然后在CanvasPanel中直接调用ButtonPanel.typeFlag。的确是可以了。但是我还有一个问题,就是如何直接在SimpleDraw中实现typeFlag值的交互而不用在CanvasPanel中去调用以保证这两个类之间的相互独立性?
追答
方法很多的,SimpleDraw类是窗口,里面有着其他两个类的实例。
你可以直接创建一个类buttonListener,来继承事件监听。
这个类中有两个ButtonPanel和CanvasPanel的成员变量。
构造函数需要这个两个对象,并给自己的成员变量进行赋值。

然后再SimpleDraw中为buttonPanel的对象添加事件监听,并new 一个buttonListener的对象。

在buttonListener中就可以直接对两个面板之间实现互交了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式