簡體   English   中英

從另一個類的JPanel文本字段中獲取價值

[英]Get value from JPanel textfield in another class

我有JPanel文本框,另一個面板保存按鈕。 如果我單擊保存按鈕,我必須獲得第一個面板文本框值。

如何訪問它?

只需將TextField設為Public Static即可。 然后你可以使用ClassName.TextFiledName訪問TextField

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

此解決方案可行,但有一種更好的方法可以使代碼更可重用。 查看觀察者模式並在代碼中使用它。

因為沒有SSCCE,這將是一個普遍的答案。
首先,您可以將文本框設置為公共靜態字段,並從其他類訪問它,但這將是您將編寫的最差代碼之一。 其次,您可以使用setter / getters方法,這些方法雖然很酷,但隨着程序變得復雜而表現不佳。 Setters / getters將在組件之間創建緊密耦合。 最后我建議使用Observer模式。 看起來似乎是在對自行車使用核武器,但最終它值得最初的麻煩 - 你在這個過程中學到了一些東西。
可以在Source制作中找到更多信息和示例源代碼。

您應該從創建面板的位置獲得Controller類。 保持對控制器類中面板的引用。 CustomPanel1公開getter方法以返回TextField中的文本(而不是textfield本身)。 同樣,您也可以從Controller創建第二個CustomPanel2並保持引用。 在控制器中定義偵聽器類並將其傳遞給第二個面板。 在第二個面板中,將偵聽器添加到按鈕。

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

Swing教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM