我的程序中有几帧。我需要从任何地方访问数据我该怎么办?
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:我有多个数据,当其中一个数据更新时,应该更新主类中的数据。
答案 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实例设为静态