-1

我有一个动作监听器,它从一组按钮中获取数据(我知道,接下来将它们分成一个按钮,等待......)

我希望它调用“显示”方法,该方法会更改这些按钮的 ImageIcon。要知道将其更改为什么图标,“显示”必须能够访问字符串数组。这个String数组是在与reveal相同的类中的一个方法中创建的,在另一个类中传递和处理,然后返回到与reveal相同的类中的不同方法中。

如何将字符串数组传递给显示函数?我尝试在创建它的类的顶部公开字符串数组。但是,它似乎没有正确返回,并且当显示尝试访问它时,所有值都是空的。

4

1 回答 1

0

正如评论中提到的,很高兴看到实际的代码,但我相信我明白这里发生了什么。首先,为了清楚起见,让我建立一些名称。让类 A 是拥有字符串数组的类(并具有显示功能)。让 B 类是对字符串数组进行处理的类。

当您将 String 数组传递给 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 的 String 数组返回一个全新的 String 数组。而 A 类的函数需要将 String 数组的值替换为处理函数的返回值。

或者

2) 如果您在 B 类拥有的处理函数中从 A 类修改 String 数组(请参见下面的示例代码)

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

也就是说,您可能正在 B 类的处理函数中填充数组。这也可以,但正如示例代码所示,您不需要在类 A 中设置 String 数组的值(如示例 1)。

我的意思是,如果显示函数得到一堆空值,我认为您无法正确处理您的字符串数组。如果这没有帮助,那么一定要发布一些更明确地显示你在做什么的代码。我相信解决方案就在眼前。

于 2013-02-16T03:14:16.803 回答