从任何地方访问数据

时间:2013-04-22 19:01:23

标签: java user-interface

我的程序中有几帧。我需要从任何地方访问数据我该怎么办?

public class Main{
    public int aData;
    public static void main(String[] args){
        Frame1 f = new Frame1();
    }
}

public Frame1 extends JFrame{

    // ....
    public void foo(){

        // I need aData in here.

    }

}

编辑1:我有多个数据,当其中一个数据更新时,应该更新主类中的数据。

3 个答案:

答案 0 :(得分:2)

只需在Frame1构造函数

中传递它
public class Main{
    public int aData;
    public static void main(String[] args){
        Frame1 f = new Frame1(aData);
    }
}

public Frame1 extends JFrame{
    private int data;
    public Frame1(int data) {
        this.data = data;
    }

    // ....
    public void foo(){
        // use data here
    }
}

答案 1 :(得分:2)

最重要的问题是为什么你认为你需要这样做。如果你真的想从任何地方访问某些东西,你可以把它变成某个地方的公共静态成员,但这是一种可怕的设计实践。

通常,您希望将设计模块化,因此每件事物都只取决于它实际需要的内容。然后,您可以向其传递一个提供所需数据的对象,例如配置设置。这使您可以轻松地模拟单元测试等,并减少在更改程序时重写所需的代码量。

答案 2 :(得分:-1)

尝试将Fram1实例设为静态