2013-02-16 78 views
-1

我已經從一組按鈕的數據需要一個ActionListener(我知道,他們分成每個按鈕的旁邊,只是等待一個...)爪哇 - 的ActionListeners給數據的方法

我想它來調用一個「揭示」方法,改變這些按鈕的ImageIcon。要知道要更改它的圖標,「揭示」必須能夠訪問字符串數組。這個String數組是在一個方法中創建的,並且在另一個類中顯示,傳遞和處理,然後返回到與揭示相同的類中的另一個方法。

如何將字符串數組傳遞給揭示函數?我試着將字符串數組公開於其創建的類的頂部。但是,它似乎沒有正確返回,並且當揭示試圖訪問它時,所有值都爲空。

+3

對於演示您的問題的可運行示例?對不起,這是週末,我的大腦已經關閉了,所以試圖閱讀你的解釋只會傷害:( – MadProgrammer 2013-02-16 02:20:20

+3

我很難想象這在我的腦海裏,其實我撒謊了,我不想進行這樣的精神集中鍛鍊空間意識和抽象思維,你可以寫一些你試過的代碼嗎? – KJW 2013-02-16 02:23:51

+0

非常混亂,請澄清你的問題。 – 2013-02-16 02:39:51

回答

0

正如在評論中提到的那樣,看到實際的代碼會很高興,但我相信我理解這裏發生的事情。首先,爲了清晰起見,讓我列出一些名稱。讓類A是擁有String數組的類(並且具有揭示函數)。讓B類成爲對String數組進行處理的類。

當你把這個字符串數組off到B類處理,你只需要做的兩件事情的肯定:

1)如果你是當這個函數返回一個字符串數組,請確保您使用它來設置類A中的字符串數組的值,無論類A用於調用類B處理函數。

// from class A 
private String[] stringsToHealAllAils; 
... 
public void aFunctionThatNeedsProcessingWithDiscriminatingTaste() 
{ 
    // instance of class B is called b 
    stringsToHealAllAils = b.processThingy(stringsToHealAllAils); 
} 

在這種情況下,B類的處理功能將需要返回基於從A和A類的函數的字符串數組一個全新的String數組將需要更換的字符串數組的值處理函數的返回值。

2)如果要修改從類A由B類所擁有的處理功能中的字符串陣列(見下面的示例代碼)

public void processThingy(String[] thatLegendaryArray) 
{ 
    // some amazing processing here 
    thatLegendaryArray[superSpecialIndex] = someOtherVerySpecialString; 
} 

也就是說,你是可能在B類的處理函數中填充數組。這也可以,但是如示例代碼所示,您不需要在類A中設置字符串數組的值(ala示例1)。

我在說的是,我認爲如果揭示函數得到一堆null,你沒有正確處理你的String數組。如果這沒有幫助,那麼一定要發佈一些代碼,更明確地顯示你在做什麼。我相信解決方案就在眼前。