繁体   English   中英

返回要从另一个类访问的数组列表

[英]Returning an arraylist to be accessed from another class

我是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中?

谢谢!

这是一些简单的示例,说明如何在方法中返回数组以及如何在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());
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM