Java 两个类之间的变量侦听器

Java 两个类之间的变量侦听器,java,class,variables,listener,Java,Class,Variables,Listener,一个月前我遇到了一个问题:S。就是这样: 我有三门课: 第1类: 带有鼠标侦听器的选项卡窗格,当有人单击选项卡时,鼠标侦听器会更改一个名为“更新”的变量 此类具有如下方法: public boolean getUpdateMenuState(){ //Creates the update variable boolean update = false; //If a update is necessary if(needUpdate = true){ //

一个月前我遇到了一个问题:S。就是这样:

我有三门课:

第1类:

带有鼠标侦听器的选项卡窗格,当有人单击选项卡时,鼠标侦听器会更改一个名为“更新”的变量

此类具有如下方法:

public boolean getUpdateMenuState(){
    //Creates the update variable 
    boolean update = false;
    //If a update is necessary
    if(needUpdate = true){    //Need update is defined at top of the class
        //Reset the update variable
        needUpdate = false;
        //Set the getUpdate variable to true
        update = true;
        System.out.println("The menu needs to be updated");
    }
    //return the update
    return update;

}
第二类,主要是:

这个类需要知道变量是否需要更新,我有这个方法:

private void updateMenu(){
    //Create a variable update
    boolean update = false;
    //Set the variable update to the get state
    update = myTabbedPane.getUpdateMenuState();
    //If a update is requiered, re-add the menu
    if(update){
        menu.addMenu(); //Call the third class that have the method addMenu
    }
}
我的问题是,我需要不断地知道变量needUpdate是否发生了更改,而我不知道如何实现自己的侦听器来实现它。 我不能在第一个类中直接调用第三个类,因为我想集中控制第二个类


如果有人能帮助我,我将不胜感激。

我认为这是使用Observer设计模式的经典案例。类2将是主题(即类1)上发生的事情的观察者,并在收到通知时执行它需要执行的操作,即在类3上调用addMenu()。

这是一个经典示例,其中观察者模式是理想的解决方案。有关如何实现该模式的详细信息,请参阅本文

PS:刚刚看到你对其中一个答案的回复;
在您的情况下,最好使用类而不是布尔变量,您可以扩展该类

更新是否意味着与needUpdate保持相同的值?你考虑过使用setter和getter吗?更好的是,对于观察者模式来说,这似乎是一个很好的示例,可以让它知道值何时更改。还要检查java observable。谢谢,但我无法扩展它,因为我已经扩展了一个JFrame:SI刚刚尝试过这样做,但我在需要这样做时遇到了一个问题:menuOb.addObserver(new Main());我另一次生成应用程序:S,因为main是我的观察者。已解决,我刚刚在另一个类的构造函数中添加了main,它与menuOb.addObserver(main());:)