1) The main class extends JFrame, but it doesn't act like one. Sure you display the app as a JFrame from within the main method, but it's an empty JFrame that does nothing.
2) Not overriding DefaultTableModel's getColumnClass so that it will return Double.class.
3) Hard-coding the lastRow variable rather than using the DefaultTableModel's own getRowCount result.
4) Calling setVisible(true) before you're done setting up your GUI. (as Norm suggests above)
5) You're not adding the JTable directly to a JScrollPane, and this is why the columns are not being displayed.