2012-09-10 36 views

回答

5

只需將TextField製作爲公共靜態數據即可。然後你可以訪問TextField使用ClassName.TextFiledName

+0

這將OOPs嬰兒與洗澡水一起扔掉。不用了,謝謝。對於未來的訪問者來說,這是一個壞主意(TM)。 –

0

那麼因爲沒有SSCCE,這將是一個普遍的答案。
首先,你可以使文本框的公共靜態字段,並從其他類訪問它,但這將是你會寫的最差的代碼之一。其次,你可以使用setter/getters方法,這些方法很酷,但是隨着程序變得越來越複雜,表現不佳。安裝人員/吸氣人員將在部件之間建立緊密耦合。最後我建議使用觀察者模式。這可能看起來像對自行車使用核武器,但最終它最初的麻煩是值得的 - 而且你在這個過程中學到了一些東西。
更多信息和示例源代碼可在Source making找到。

2

一個簡單的解決方案將在您實現ActionListener的類中創建一個構造函數,並在構造函數中傳遞需要更新或檢索值的組件。

這個解決方案可以工作,但有一個更好的方法可以使代碼更加可重用。看看observer pattern並在代碼中使用它。

+0

正在寫在單獨的類動作監聽者,我需要聲明的文本框這樣的公共靜態最後的JTextField maxPerPick然後只有我可以訪問像這樣的另一個類String value1 = PortFolioPanel.maxPerPick.getText();.我沒有使用對話框,只有一個屏幕保存在另一個面板的一個面板和文本框中 – shakkir3435

0

你應該有一個Controller類從創建面板。繼續參考控制器類中的面板。在您的CustomPanel1中公開getter方法以返回TextField中的文本(而不是文本字段本身)。同樣,您也可以從Controller創建第二個CustomPanel2並繼續參考。在控制器中定義監聽器類並將其傳遞給第二個面板。在第二個面板中將偵聽器添加到您的按鈕。

這將是一個簡單的解決方案。

Swing Tutorial