2016-04-22 79 views
0

下午好!更新JTable作爲窗口關閉

我有一個主程序(我們稱之爲window1),它顯示JTable並由SQL數據庫中的數據填充。當您雙擊JTable時,它會打開一個允許用戶編輯數據庫的新窗口(我們稱之爲window2)。

我想將一個windowListener添加到window2,以便它關閉時,它告訴window1重新填充那裏包含的JTable。

我試着環顧一下窗口事件,並試圖找出如何使用它們,但我只是不理解它......如果您需要我的代碼的某些部分,請隨時詢問。

我在我的主程序中有一個方法,當window1被加載時最初更新JTable,但是當window2關閉時需要弄清楚如何調用該方法。

在此先感謝!

+1

'我試着環顧窗口事件並試圖弄清楚如何使用它們,但我只是不理解它......' 從[Swing教程]中的[如何編寫WindowListener]()作爲一個工作示例。不過,我不建議爲此使用WindowListener。但是,請將本教程鏈接保留爲適用於此Swing和其他基本知識。 – camickr

+1

道德對話框,模態對話框,模態對話框,其他答案只是浪費時間 – MadProgrammer

回答

2

你在window2中究竟做了什麼?任何確認按鈕可能?如果是這樣,那麼您可以在該按鈕的偵聽器中調用JTable的更新方法。

+0

其實我是這樣做的。我有'添加','更新'和'刪除'按鈕。我會嘗試使用「更新」按鈕進行操作。我沒有想到...謝謝! –

+0

儘管這並不是我尋找的答案,但這使用更簡單的方法解決了我的問題。所以。你真了不起。 –

+0

很高興能幫到你! –

2

我想添加一個windowListener到window2,這樣它關閉時,它告訴window1重新填充那裏包含的JTable。

所有這一切的難題不在於信息的傳遞 - 這可以通過getter和setter方法簡單地實現。沒有難度的是通常知道傳輸的信息,爲此你有兩個選項之一。

  • 最簡單的到目前爲止是有窗口2到不是一個JFrame,但是是一個模態的JDialog。這就像JFrame一樣,可以容納JFrame所有的東西,但會凍結主窗口中的程序流,直到對話窗口不再可見。一旦發生這種情況,程序流程會在主程序中恢復,您可以查詢對話窗口中保存的數據並使用數據更新JTable。
  • 另一個更困難的選擇是讓window2成爲非模態的JDialog,如果你走這條路線,你需要添加一個WindowListener(請看鏈接) - 如果可以的話,我不推薦這個幫助它。