从jframe发送到java类,然后从其他jframe访问它们

时间:2017-04-18 02:18:01

标签: java swing jframe

所以,让我说我有3个文件。

  • Accounts.java(帐户类)

  • loginGUI.java(JForm)

  • displayAccountGUI.java(JForm)

当我登录时,我输入了CustomerID,Pin和帐号。然后程序检查我输入的3个值是否在accounts.txt。

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

displayAccount.java我想显示loginGUI.java中使用a.setId(ID);存储在Account.java中的帐号,但因为Account a = new Account();中有displayAccount.java之前设置的值因创建新帐户而被删除。

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

3 个答案:

答案 0 :(得分:1)

一旦您验证了用户凭据,就可以创建一个"会话" object,它封装了您需要共享的信息。它可能是"客户ID"和"帐户名称"信息或它可以是Account类的实例。

将此传递给您的displayAccount课程(删除Account a = new Account();并使用传递的参考资料)

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

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

答案 1 :(得分:1)

我相信你可以为displayAccountGUI创建一个新的构造函数并将Account作为参数传递。这是有道理的,因为将来您可能需要displayAccountGUI中帐户的更多信息,例如照片或其他内容。

答案 2 :(得分:1)

由于我还没有添加评论的权限,我将在此处发布。我只知道有两种方法可以达到你想要的目的,以获得理想的结果。

  1. 通过构造函数传递值

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

  2. 使用setter方法

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