I am trying to get My Application to display the data from a CSV IN the JTable and not output it in Netbeans > output. I hope someone can be able to help me with the solution. Here is the source code and results of what I have already.
I could not see what I did wrong, the code I posted below should already display the data in the table but it does not display in as it should. I was hoping someone here can help me see: where did I go wrong?
Source Code:
public class Asist_payment_import_v1 extends JPanel implements ActionListener{
private final JTable Table;
public Asist_payment_import_v1(){
    super(new BorderLayout(3,3));
    this.Table = new JTable(new MiModel());
    this.Table.setPreferredScrollableViewportSize(new Dimension(700,70));
    this.Table.setFillsViewportHeight(true);
    JPanel ButtonOpen = new JPanel(new FlowLayout(FlowLayout.CENTER));
    JButton open_file = new JButton("Open");
    JButton save_file = new JButton("Save");
    ButtonOpen.add(open_file);
    add(ButtonOpen, BorderLayout.SOUTH);
    open_file.addActionListener(this);
    save_file.addActionListener(this);
    //create scrollPane to this Panel
    JScrollPane scrollpane = new JScrollPane(Table);
    //add the scroll pane to this pane
    add(scrollpane,BorderLayout.CENTER);
    //add Border
    setBorder(new EmptyBorder(5,5,5,5));
}
public void actionPerformed(ActionEvent Event)
{
    JFileChooser file_chooser = new JFileChooser();
    boolean pressed = true;
    if(pressed)
    {
        int ReturnVal = file_chooser.showOpenDialog(null);
        CSVFile Rd = new CSVFile();
        MiModel NewModel = new MiModel();
        this.Table.setModel(NewModel);// to set the Table model
        File DataFile = file_chooser.getSelectedFile();
        ArrayList<String[]> rs2 = Rd.ReadCSVFile(DataFile);
        NewModel.AddCSVData(rs2);
        System.out.println("Rows: " +NewModel.getRowCount());
        System.out.println("Cols: " +NewModel.getColumnCount());
    }
}
public class CSVFile
{
    private ArrayList<String[]> Rs = new ArrayList<>();
    private String[] OneRow;
    public ArrayList<String[]> ReadCSVFile(File DataFile){
        try{
            BufferedReader brd = new BufferedReader (new FileReader(DataFile));
            while(brd.readLine()!= null){
                String st = brd.readLine();
                OneRow = st.split(",");
                Rs.add(OneRow);
                System.out.println(Arrays.toString(OneRow));
                }
    }//end try 
        catch(Exception ex){
        String errmsg = ex.getMessage();
        System.out.println("File not Found: "+errmsg);
    }//end exception handling
    return Rs;
  }//End of ArrayList_readCSVFile class
}//End of CSVFile class
private static void createAndShowGui()
{
    //setup Window
    JFrame frame = new JFrame("PaymentImport");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //setup the conentPane
    Asist_payment_import_v1 newContentPane = new Asist_payment_import_v1();
    frame.setContentPane(newContentPane);
    //display the window
    frame.pack();
    frame.setVisible(true);
}
class MiModel extends AbstractTableModel
{
    private String [] columnNames = {"1","2","3","4","5","6","7","8","9","10",
                                    "11","12","13","14","15","16","17","18"};
    private ArrayList<String[]>Data = new ArrayList<>();
    public void AddCSVData(ArrayList<String[]> DataIn){
        this.Data = DataIn;
        this.fireTableDataChanged();
    }
    @Override
    public int getColumnCount(){
        return columnNames.length;
    }
    @Override
    public int getRowCount(){
        return Data.size();
    }
    @Override
    public String getColumnName(int col){
        return columnNames[col];
    }
    @Override
    public Object getValueAt(int row, int col){
        return Data.get(row)[col];
    }
}
/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // schedule a job for the event-despatching thread:
    //creating and showing this application's GUI
    javax.swing.SwingUtilities.invokeLater(new Runnable(){
        public void run(){
            createAndShowGui();
        }
    });
    }}
Here is the result That I get: [Results of the Import program ][1]
Before the below  results it shows all the contents of the CSVFile then it shows the amount of Columns and the amount of Rows that it has. 
I want the result to show the contents in a JTable.
here is the exception I get From the output Window
[2019023, 294133, 69.00, 20171127, 11, 2017, "False", "Annamarie", 
"Group Payment (19061)", "False", "All", 0, , , "2017-11-27 09:43:14", "", 
54.00, 20171127]
Exception in thread "AWT-EventQueue-0" 
java.lang.ArrayIndexOutOfBoundsException: 16
[2019025, 288623, 130.00, 20171127, 11, 2017, "False", "Annamarie", "Group 
Payment (19063)", "False", "All", 0, , , "2017-11-27 09:43:30", "", 1068.80, 
20171127]
[2019027, 288625, 105.00, 20171127, 11, 2017, "False", "Annamarie", "Group 
Payment (19063)", "False", "All", 0, , , "2017-11-27 09:43:31", "", 855.00, 
20171127]
Rows: 690551
Cols: 18
at asist_payment_import_v1.Asist_payment_import_v1$MiModel.getValueAt(Asist_payment_import_v1.java:148)
at javax.swing.JTable.getValueAt(JTable.java:2717)
at javax.swing.JTable.prepareRenderer(JTable.java:5706)
at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2114)
at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:2016)
at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1812)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
at javax.swing.JComponent.paintComponent(JComponent.java:780)
at javax.swing.JComponent.paint(JComponent.java:1056)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JViewport.paint(JViewport.java:728)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502)
at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
at javax.swing.JComponent._paintImmediately(JComponent.java:5158)
at javax.swing.JComponent.paintImmediately(JComponent.java:4969)
at javax.swing.RepaintManager$4.run(RepaintManager.java:831)
at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 16 at asist_payment_import_v1.Asist_payment_import_v1$MiModel.getValueAt(Asist_payment_import_v1.java:148)
at javax.swing.JTable.getValueAt(JTable.java:2717)
at javax.swing.JTable.prepareRenderer(JTable.java:5706)
at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2114)
at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:2016)
at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1812)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
at javax.swing.JComponent.paintComponent(JComponent.java:780)
at javax.swing.JComponent.paint(JComponent.java:1056)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JViewport.paint(JViewport.java:728)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502)
at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
at javax.swing.JComponent._paintImmediately(JComponent.java:5158)
at javax.swing.JComponent.paintImmediately(JComponent.java:4969)
at javax.swing.RepaintManager$4.run(RepaintManager.java:831)
at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
at java.awt.Dialog.show(Dialog.java:1084)
at javax.swing.JFileChooser.showDialog(JFileChooser.java:758)
at javax.swing.JFileChooser.showOpenDialog(JFileChooser.java:656)
at asist_payment_import_v1.Asist_payment_import_v1.actionPerformed(Asist_payment_import_v1.java:62)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
