2017-04-18 66 views
0

因此,让我们说我有3个文件。从jframe发送到java类,然后从其他jframe访问它们

  • Accounts.java(Account类)

  • loginGUI.java(JForm)

  • displayAccountGUI.java(JForm)

当我登录I输入客户ID,引脚和帐号。然后程序检查我输入的3个值是否在accounts.txt中。

我在这两个Jframe中也有Account a = new Account();

displayAccount.java我想从loginGUI.java显示账号正在被使用a.setId(ID);存储在Account.java而是因为我在displayAccount.javaAccount a = new Account();之前设置的值被删除,由于创造新的“帐户”。

有什么办法可以用其他方式访问这个值吗?

+1

建立某种会话对象,它封装你需要的信息在你的课堂上分享,将它传递给你的类,以便它们正在使用它,而不是创建与实际上正在发生的任何关联的对象的新实例。 – MadProgrammer

+1

这是一个相对基本的编程概念,考虑查看[将信息传递给方法或一个构造函数](https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html) – MadProgrammer

+0

请参阅[使用多个JFrames,好/坏实践?](http://stackoverflow.com/ q /418556分之9554636) –

回答

1

验证用户凭据后,创建一个“会话”对象,它封装了您需要共享的信息。它可以是“客户ID”和“帐户名称”信息,也可以是Account类的一个实例。

它传递给你的displayAccount类(除去Account a = new Account();并使用通过参考)

你如何实现这一切将取决于你如何组织你的代码。我个人而言,我会有某种显示登录对话框的控制器。当对话被解散时,我会验证凭据,如果失败则显示错误消息。如果他们成功了,我会创建一个Account类的新实例(假设它拥有关于客户端的足够信息),我会创建“帐户视图”,将Account的实例传递给它

这是一个相对基本的编程概念,考虑看看Passing Information to a Method or a Constructor

1

我相信你可以为displayAccountGUI创建一个新的构造函数,并通过Account作为参数。这很有意义,因为将来您可能需要更多来自displayAccountGUI的帐户的信息,如照片或其他内容。

1

由于我没有权限添加评论,所以我只是在这里发布。我只知道有许多方法中的两种来完成你想要做的事情以获得理想的结果。

  1. 通过构造函数传递值

    public displayAccount(Account a){this.a = a;}

  2. 使用setter方法

    public void setAccount(Account a){this.a = a;}