java:如何将起始JFrame中的变量传递给最后一个而不必将其传递给所有JFrame?

时间:2014-01-27 17:40:28

标签: java eclipse swing jframe

我有这个问题:我有一个ArrayList,其中包含一些我想在特定框架中使用的项目,问题是数组列表通过在项目的主类中初始化来填满。在这个课程中,我还启动了与其他帧链接的起始帧(登录帧 - >中间帧 - >最后一帧)。我想要携带这个ArrayList,而不必通过所有帧继续它,并让它直接从主要使用 - >最后一帧。我怎么能这样做?

编辑

Wat我做的就像第一帧开始时以ArrayList为参数:

Jframe jf = new LoginFrame(arraylistvariable,"Login Window");           

然后在创建新框架的按钮的所有ActionListener调用中,处理旧框架,我将它设置为:

Jframe jo = new MiddleFrame(arraylistvariable,"Middle Window");

在整个帧中传递这个变量,但是我希望这只是由需要它的帧调用,因为登录帧不需要这个变量。但是,必须通过登录框启动程序。

3 个答案:

答案 0 :(得分:1)

  

“但是,必须通过登录框架启动程序。”

不,不是。

public class MiddleFrame() {
    private LoginFrame;
}

...
public static void main(String[] args){
    new MiddleFrame();
}

在实例化时使中间框架不可见,但使LoginFrame可见。如果登录是successfful,但是MiddleFrame可见。

注意您不需要使用多帧。利用JDialogs。请参阅How to make a Login with a JDialog

的答案

答案 1 :(得分:0)

从最简单的方式传递它/它们通过system properties

答案 2 :(得分:0)

您可能希望创建一些类ArrayListVariableProviderService,并使其可以访问所有类(JFrame)或通过静态调用。

这可以作为许多事物的容器,但它会消除所有特性。

祝你好运。