title: JTable doesn't show columns names
body: <p>here is my code:</p>
  
  <pre><code>public class DownloadMainView extends JFrame{
      private ArrayList&lt;DownloadItem&gt; downloadList = new ArrayList&lt;DownloadItem&gt;();
      private JMenuBar menubar = new JMenuBar();
      private JMenu m_task = new JMenu("Tasks");
      private JMenu m_tool = new JMenu("Tools");
      private JMenu m_help = new JMenu("Help");
  
      private JMenuItem mi_add = new JMenuItem("Add");
      private JMenuItem mi_exit = new JMenuItem("Exit");
      private JMenuItem mi_options = new JMenuItem("Options");
      private JMenuItem mi_help = new JMenuItem("Help");
      private JMenuItem mi_about = new JMenuItem("About");
  
      private JTree categoryTree = new JTree();
      private JTable contentTable = new JTable(new Object[][]{},new Object[]{"No.","Filename","URL","Status","Size","Added Date"});
      private JToolBar toolbar = new JToolBar();
      private JScrollPane scrollPane = new JScrollPane();
  
      private JButton btnAdd = new JButton("Add");
      private JButton btnCancel = new JButton("Cancel");
      private JButton btnDelete = new JButton("Delete");
      private JButton btnOption = new JButton("Option");
  
      public DownloadMainView() throws IOException{
          super("KPDownloader");
          setSize(800,400);
          setLayout(null);
          setDefaultCloseOperation(EXIT_ON_CLOSE);
          //Build menubar
          menubar.add(m_task);
          menubar.add(m_tool);
          menubar.add(m_help);
          m_task.add(mi_add);
          mi_add.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK));
          m_task.add(new JSeparator());
          m_task.add(mi_exit);
          mi_exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.ALT_MASK));
          m_tool.add(mi_options);
          mi_options.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK));
          m_help.add(mi_help);
          mi_help.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1,0));
          m_help.add(mi_about);
          mi_about.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,ActionEvent.CTRL_MASK));
          setJMenuBar(menubar);
          //about buttons
          toolbar.add(btnAdd);        
          toolbar.add(btnOption);
          toolbar.add(btnCancel);
          toolbar.add(btnDelete);
          toolbar.setLocation(0, 0);
          toolbar.setSize(800,42);
          this.add(toolbar);
          //add table to mainview
          String columns[] = {"No.","Filename","URL","Status","Size","Added Date"};
          DefaultTableModel model = new DefaultTableModel(columns,1);
          readDownloadList();
          if(downloadList != null){
              int length = downloadList.size();
              for(int i = 0; i &lt; length; i++)
                  model.insertRow(i, new Object[]{i,
                          downloadList.get(i).getFilename(),downloadList.get(i).getSize(),
                          downloadList.get(i).getStatus(),
                          downloadList.get(i).getURL(),downloadList.get(i).getAddedDate()});
          }
  
          contentTable.setModel(model);
          contentTable.setSize(800, 350);
          scrollPane.add(contentTable);
          scrollPane.setSize(800, 350);
          scrollPane.setLocation(0, 50);
          this.add(scrollPane);
  
      }
  </code></pre>
  
  <p>But when I run my code, the table does not display column names. It just shows one empty row as I set 1 to this line: <code>DefaultTableModel model = new DefaultTableModel(columns,1);</code></p>
  
  <p>Please show me where my code is wrong??
  Thanks!</p>
  
  <p>Edited: As someone asked same question (No titles in JTable) but the answer is add Jtable to a JScrollPane and this does not help @@
  Edited: Hi <strong>Dan</strong>, I've added my full Constructor, and here is  the code of the <code>readDownloadList()</code> method:</p>
  
  <pre><code>void readDownloadList(){
              File file = new File("downloadlist.dat");
              ObjectInputStream ois = null;
              if(!file.exists())
                  try {
                      file.createNewFile();
                  } catch (IOException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
              try {
                  ois = new ObjectInputStream(new FileInputStream(file));
                  downloadList = (ArrayList&lt;DownloadItem&gt;) ois.readObject();
                  ois.close();
              } catch (IOException e) {
                  // TODO Auto-generated catch block
                  downloadList = new ArrayList&lt;DownloadItem&gt;();
                  e.printStackTrace();
              }catch(ClassNotFoundException e){
                  downloadList = new ArrayList&lt;DownloadItem&gt;();
                  e.printStackTrace();
              }
          }
  </code></pre>
  
  <p>Thank you!</p>