如何监听变量值的改变?

woos 2007-12-16 03:57:44
JAVA中,多个对象(我这里是几个JFrame)间共享一个变量(封装在一个我自己定义的类中,里面只是需要共享的变量).
如果一个JFrame改变了这个变量的值,能否在其它JFrame里触发一个事件?
就像actionListener,MouseMotionListener之类的,有没有一个类似的变量监听器"VariableListener"?
谢谢~
...全文
693 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
woos 2007-12-16
  • 打赏
  • 举报
回复
哦~~~~
5楼说得对,我的代码能工作了.
guoyueshan 2007-12-16
  • 打赏
  • 举报
回复
setChanged() 是protected,所以应该CtryOb来extends Observable,不需要class C1了
或者在class C1中重写setChanged()方法,改为public的
类似这样
public void setChanged(){
super.setChanged();
}
woos 2007-12-16
  • 打赏
  • 举报
回复
出错啊....Eclipse这么说:
The method setChanged() from the type Observable is not visible
guoyueshan 2007-12-16
  • 打赏
  • 举报
回复
ce.notifyObservers();前面加一句:
ce.setChanged();
woos 2007-12-16
  • 打赏
  • 举报
回复


import java.util.*;

public class CtryOb
{
public static void main(String[] args)
{
C1 ce=new C1();
ce.i=1;
Cobserver cr=new Cobserver();
ce.addObserver(cr);
ce.i=2;
ce.notifyObservers();

}

static class C1 extends Observable
{
int i=0;
}
static class Cobserver implements Observer
{
public void update(Observable o, Object arg)
{
System.out.println("updated");
}
}
}



是这样吗?总是没有输出.请问要怎么改?
sunboylyg 2007-12-16
  • 打赏
  • 举报
回复
请使用java.util.Observable类和java.util.Observer类

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧