从java中的另一个类获取一个数组

时间:2014-05-19 14:08:22

标签: java arrays

我有一个文件名列表,用于在另一个类中打开图像,

public String[] getImages(){
  for(int i=0;i<50;i++){
    fileNames[i]= allData[i][10];
  }
  return fileNames;
}

然后在另一个课程中,我有一个FlowPane,我试图填充一系列图像:

String fileNames[] = new string [50];
fileNames = readAllCards.getFileNames();

Image card[] = new Image[50];

for (int i = 0; i < 50; i++)
{
  card[i] = new Image(fileName[i]);
}

我知道这段代码是错误的,但这是我尝试做的事情,我只是在努力从另一个类中获取一个数组然后我认为我的图像数组会起作用之后。

4 个答案:

答案 0 :(得分:1)

一个好方法是通过构造函数将数组作为参数传入。因此,在实例化加载图像的类的地方,您可以按照以下方式执行操作:

ImageLoader imageLoader = new ImageLoader(readAllCards.getFileNames());
Image[] cardImages = imageLoader.getImages();

其中&#34; imageLoader&#34;是需要访问文件名数组的对象。

然后在你的ImageLoader类中,你需要添加一个新的构造函数:

class ImageLoader {

    private String[] filenames;

    public ImageLoader(String[] filenames) {
        this.filenames = filenames;
    }

    public Image[] getImages() {
        Image[] cards = new Image[50];

        for (int i = 0; i < 50; i++) {
            cards[i] = new Image(fileNames[i]);
        }
        return cards;
    }
}

如果这没有帮助,那么我认为我们需要有关您班级设计的更多信息。如果您可以完整地发布课程,那么这将有很大帮助!

答案 1 :(得分:1)

将数组传递给getImages(...)

public String[] getImages(String[] fileNames){
    //assuming fileNames is initialized 
    for(int i=0;i<50;i++){
        fileNames[i]= allData[i][10];
    }
    return fileNames;
}

现在这应该有效:

String fileNames[] = new string [50];
fileNames = readAllCards.getFileNames(fileNames);

注意:有很多方法可以解决此问题。这只是一个简单的解决方案。

答案 2 :(得分:0)

我注意到您的代码存在一些问题,

public String[] getImages(){
  String[] fileNames = new String[allData.length];
  for(int i=0;i<allData.length;i++){
    fileNames[i]= allData[i]; /* Assuming allData is another String[] */
  }
  return fileNames;
}

在你的其他课程中,

// Just get the fileNames from the call to getFileNames();
String fileNames[] = readAllCards.getFileNames();

答案 3 :(得分:0)

我认为如果您添加有关上下文的更多信息会有所帮助。

特别是什么是&#34; readAllCards&#34;和#34; allData&#34;对象