2016-10-06 5 views
0

Я новичок в Stackoverflow, поэтому здесь идет.Возвращение arraylist для доступа из другого класса

В настоящее время я работаю над заданием, которое требует чтения из файла csv и помещает его в какой-то сбор данных.

Я пошел с архаистом. Но я, кажется, застрял в том, что я пытаюсь использовать свой класс 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

Вместо 'void' вас может изменить метод, чтобы вернуть 'ArrayList'. Что-то вроде этого 'public static List Read() throws IOException {// некоторый код return myArrayList}' – Ravikumar

ответ

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()); 
    } 
}