簡體   English   中英

如何分享ArraList <String> 在GUI中的類之間?

[英]How to share ArraList<String> among classes in GUI?

我正在嘗試制作一個具有ArrayList列表的GUI,它需要在類之間共享:

public class Selection extends JPanel
{

public static ArrayList<String> List = new ArrayList<String>();

public Selection()
{

//Adding button for user to click.  If clicked, a line of text will be 
//added into ArrayList<String> List

}}  //End of the Selection Classes

這是另一個類,我希望它們共享相同的ArrayList

public class Total extends JPanel
{

public static ArrayList<String> List = new ArrayList<String>();

public Total()
{

    //Setting up a button for calculating a sum based on the text 
    //in ArrayList<String> List

 }}  //End of Total Class

我嘗試執行以下操作:

public Selection(ArrayList<String> List)
public Total(ArrayList<String>  List)

但這給了我錯誤。 為了在兩個或多個類之間共享一個ArrayList,我該怎么辦?

看來您可能想要單身人士。 您可以Google如何實施它。 例如,創建一個僅包含一個枚舉的枚舉表,您在其中提供了一種訪問數組列表的方法。

完成此操作后。 您可以在兩個課程中安全地使用它。

希望能幫助到你。

您的方法行不通。 靜態變量是類變量。 因此,Total類的所有實例將共享相同的ArrayList,同樣,Selection的所有實例將共享相同(對ArrayArray的引用),但是-Total的實例將與Selection的實例引用不同的ArrayList。

滿嘴 但是,您需要做的是通過它們的構造函數或setter方法將ArrayList的相同實例傳遞給每個類。 或者,您可以有一個來自其他類的靜態方法,該方法將相同的引用返回到ArrayList。

重要的要點是您誤解了static的含義。 另外,您要問的是依賴注入 已經開發出了用於解決此問題的整個框架,Java中最流行的示例是Spring框架。 使用框架對於您的要求來說可能是過大的,但是我只是想讓您知道。

暫無
暫無

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

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