2017-04-18 46 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;}