从抽象类中的Jframe类获取变量

时间:2017-04-19 14:31:01

标签: java

我的问题是我想从jframe类变量到java中的抽象类

为例:

public class MainWindow extends Frame {
    String Variable 1;
    ..... 
}

public abstract class AbstractController { 

    // I need to use variable 1 in this class...

}

谢天谢地......

1 个答案:

答案 0 :(得分:1)

  

我想要的问题是从jframe类变量到java中的抽象类

我会建议不,你真的不想这样做,你不想直接访问和修改另一个类中的变量。您似乎正在创建类似于模型 - 视图 - 控制器或视图 - 控制器的东西,因此您可能希望根据需要传递引用,封装所有变量,并通过受控公共方法访问变量或“状态”。所以像这样:

public class View {
    private String someStateField;
    //..... 

    public String getSomeStateField() {
        return someStateField;
    }

    public void setSomeStateField(String someStateField) {
        this.someStateField = someStateField;
    }
}

和控制器

public abstract class AbstractController { 
    private View view;

    public AbstractController(View view) {
        this.view = view;
    }

    public view getView() {
        return view;
    }

    public void someMethod() {
        // can now call view methods here
    }

}

当然,控制器的具体版本需要具有类似结构的构造函数并调用super的构造函数:

public class ConcreteController { 

    public ConcreteController(View view) {
        super(view);
    }

    // ....

}    

并且主要方法需要将它们连接在一起:

public static void main(String[] args) {
    SwingUtilities.invokeLater(() -> {
        View view = new View();
        AbstractController controller = new ConcreteController(view);
        // .....
    });
}

您的解决方案的细节当然取决于您的程序结构和设置的其余部分,如果您需要更详细的答案,请更新您的问题更详细和代码,并回复给我。