以下两种方法可以满足你的要求:
1》用事件来传递消息,但比较复杂。
2》用类之间的消息来通信,就是方法调用,比较简单。
譬如说有类A和B两个类,由A来控制B的某些动作。那么就可以在A中注册B,就是在A中:B b=new B();当需要时,b.doSomething(paramter1,paramter2,....);这只是单项的,可以双向通信,就是互相注册调用。只要注意保证你所要的类的实例保证唯一或者说是你要得那个就行了。
至于用事件则要麻烦多了,如果不是涉及到很复杂的通信和关系就不要用了,也不是三句两句能说明白的,还要根据不同的情况涉及事件接口。
1》用事件来传递消息,但比较复杂。
2》用类之间的消息来通信,就是方法调用,比较简单。
譬如说有类A和B两个类,由A来控制B的某些动作。那么就可以在A中注册B,就是在A中:B b=new B();当需要时,b.doSomething(paramter1,paramter2,....);这只是单项的,可以双向通信,就是互相注册调用。只要注意保证你所要的类的实例保证唯一或者说是你要得那个就行了。
至于用事件则要麻烦多了,如果不是涉及到很复杂的通信和关系就不要用了,也不是三句两句能说明白的,还要根据不同的情况涉及事件接口。
可是
比如是这样呢
由主Frame1注册调用了一个Frame2或者是Dialog
在Frame1中new Frame2或者是new Dialog无疑是可以的
可是在Frame2或者是Dialog中如果new Frame1
所得到的就不是原来的那个主Frame1了
那就也得不到主Frame中的成员变量了
那该怎么办呢?
Frame frame = null;
public Frame2(JFrame frame)
{
this.frame = frame;
}
这样你在Frame中实例化Frame2时就可以new Frame2(this);把自己传过去,就是相互注册。
当然也可以写一个方法来完成,不过你在需要时不要忘了先调用这个方法。