返回从另一个类访问的arraylist

时间:2016-10-06 06:35:19

标签: java arrays arraylist jtable

我是Stackoverflow的新手,所以这里就是。

我目前正致力于一项需要从csv文件中读取并将其置于某种数据集中的作业。

我和一个arraylist一起去了。但我似乎坚持的是,我试图使用我的ReadWriteFile类将csv文件读入arraylist(可行)。但我需要以某种方式访问​​我的GUI类中的数组,以便用我的数据填充我的JTable。

在查看类似的帮助请求后,我找不到任何成功。

我的ReadWriteFile类的当前代码;

public static void Read() throws IOException {

    String lines = "";
    String unparsedFile = "";
    String dataArray[];
    String col[] = { "COUNTRY", "MILITARY", "CIVILIAN", "POWER" };

    FileReader fr = new FileReader("C:/Users/Corbin/Desktop/IN610 - Assignment 1/Programming3_WWII_Deaths.csv");
    BufferedReader br = new BufferedReader(fr);

    while ((lines = br.readLine()) != null) {
        unparsedFile = unparsedFile + lines;
    }
    br.close();

    dataArray = unparsedFile.split(",");

    for (String item : dataArray) {
        System.out.println(item);
    }

    ArrayList<String> myArrayList = new ArrayList<String>();
    for (int i = 0; i < dataArray.length; i++) {
        myArrayList.add(dataArray[i]);
    }
}

那么我的问题是什么;如何创建一个从数组中返回值的方法,这样我就可以在GUI类中访问该数组并将每个元素添加到JTable中?

谢谢!

1 个答案:

答案 0 :(得分:0)

以下是如何在方法中返回数组以及如何在GUI类中使用它的一些简单示例:

public class Main {

    public String[] readFromFile (String filePath) {

        ArrayList<String> yourList = new ArrayList<String>();

        try {
            BufferedReader br = new BufferedReader(new FileReader(filePath));
            // read file content to yourList
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        return yourList.toArray(new String[yourList.size()]);
    }
}

GUI类:

public class GUI extends JFrame {

    private JTable jTable;

    public GUI() {
        jTable = new JTable(10, 10);
        this.getContentPane().add(jTable);
        this.setVisible(true);
        this.pack();
    }

    public void passArrayToTable(Main mainClass) {

        String[] array = mainClass.readFromFile("C:\\file.csv");

        // for (String s : array) {
        // add values to jTable with: jTable.setValueAt(s,row,column);
        // }
    }

    public static void main(String[] args) {
        new GUI().passArrayToTable(new Main());
    }
}