title: jTable on netbeans GUI
body: <p>I need to add table in my Java program. I used netbeans GUI to help me create the program. But when I insert Table on it. It won't display the table. Here is my code : (please look at method setTableItemList() )</p>
  
  <pre><code>/*
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
  package Program;
  
  import java.awt.BorderLayout; 
  import java.awt.CardLayout;
  import java.sql.Connection;
  import java.sql.DriverManager;
  import java.sql.PreparedStatement;
  import java.sql.ResultSet;
  import java.sql.SQLException;
  import java.sql.Statement;
  import java.util.Date;
  import javax.swing.JPanel;
  import javax.swing.JScrollPane;
  import javax.swing.table.DefaultTableModel;
  import javax.swing.table.TableColumn;
  import javax.swing.table.TableModel;
  import javax.swing.JTable;
  
  public class MainPage extends javax.swing.JFrame {
  
  /**
   * Creates new form test
   */
  public MainPage() {
      initComponents();
  }
  private Connection connect = null;
  private Statement statement = null;
  private PreparedStatement preparedStatement = null;
  private ResultSet resultSet = null;
  private JTable table;
  private JScrollPane ScrollPane;
  private JPanel topPanel;
  
  /**
   * This method is called from within the constructor to initialize the form.
   * WARNING: Do NOT modify this code. The content of this method is always
   * regenerated by the Form Editor.
   */
  @SuppressWarnings("unchecked")
  // &lt;editor-fold defaultstate="collapsed" desc="Generated Code"&gt;
  private void initComponents() {
  
      contentPanel = new javax.swing.JPanel();
      jPanel2 = new javax.swing.JPanel();
      jLabel2 = new javax.swing.JLabel();
      jPanel1 = new javax.swing.JPanel();
      jLabel1 = new javax.swing.JLabel();
      jLabel3 = new javax.swing.JLabel();
      jTextField1 = new javax.swing.JTextField();
      jTextField2 = new javax.swing.JTextField();
      jLabel4 = new javax.swing.JLabel();
      jScrollPane1 = new javax.swing.JScrollPane();
      jTextArea1 = new javax.swing.JTextArea();
      jButton1 = new javax.swing.JButton();
      jPanel3 = new javax.swing.JPanel();
      jPanel4 = new javax.swing.JPanel();
      jMenuBar1 = new javax.swing.JMenuBar();
      jMenu1 = new javax.swing.JMenu();
      jMenuItem2 = new javax.swing.JMenuItem();
      jMenu2 = new javax.swing.JMenu();
      jMenuItem1 = new javax.swing.JMenuItem();
      jMenuItem3 = new javax.swing.JMenuItem();
  
      setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  
      contentPanel.setLayout(new java.awt.CardLayout());
  
      jLabel2.setText("WELCOME TO .....");
  
      org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
      jPanel2.setLayout(jPanel2Layout);
      jPanel2Layout.setHorizontalGroup(
          jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
          .add(jPanel2Layout.createSequentialGroup()
              .add(144, 144, 144)
              .add(jLabel2)
              .addContainerGap(166, Short.MAX_VALUE))
      );
      jPanel2Layout.setVerticalGroup(
          jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
          .add(jPanel2Layout.createSequentialGroup()
              .add(125, 125, 125)
              .add(jLabel2)
              .addContainerGap(184, Short.MAX_VALUE))
      );
  
      contentPanel.add(jPanel2, "card3");
  
      jLabel1.setText("ID");
  
      jLabel3.setText("Nama");
  
      jTextField1.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(java.awt.event.ActionEvent evt) {
              jTextField1ActionPerformed(evt);
          }
      });
  
      jLabel4.setText("Keterangan");
  
      jTextArea1.setColumns(20);
      jTextArea1.setRows(5);
      jScrollPane1.setViewportView(jTextArea1);
  
      jButton1.setText("Submit");
  
      org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
      jPanel1.setLayout(jPanel1Layout);
      jPanel1Layout.setHorizontalGroup(
          jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
          .add(jPanel1Layout.createSequentialGroup()
              .add(30, 30, 30)
              .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                  .add(jButton1)
                  .add(jPanel1Layout.createSequentialGroup()
                      .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                          .add(jLabel1)
                          .add(jLabel3)
                          .add(jLabel4))
                      .add(24, 24, 24)
                      .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                          .add(jTextField1)
                          .add(jTextField2)
                          .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 248, Short.MAX_VALUE))))
              .addContainerGap(42, Short.MAX_VALUE))
      );
      jPanel1Layout.setVerticalGroup(
          jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
          .add(jPanel1Layout.createSequentialGroup()
              .addContainerGap()
              .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                  .add(jLabel1)
                  .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
              .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
              .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                  .add(jLabel3)
                  .add(jTextField2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
              .add(18, 18, 18)
              .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                  .add(jLabel4)
                  .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 152, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
              .add(18, 18, 18)
              .add(jButton1)
              .addContainerGap(50, Short.MAX_VALUE))
      );
  
      contentPanel.add(jPanel1, "card2");
  
      org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4);
      jPanel4.setLayout(jPanel4Layout);
      jPanel4Layout.setHorizontalGroup(
          jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
          .add(0, 400, Short.MAX_VALUE)
      );
      jPanel4Layout.setVerticalGroup(
          jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
          .add(0, 53, Short.MAX_VALUE)
      );
  
      org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
      jPanel3.setLayout(jPanel3Layout);
      jPanel3Layout.setHorizontalGroup(
          jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
          .add(jPanel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
      );
      jPanel3Layout.setVerticalGroup(
          jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
          .add(jPanel3Layout.createSequentialGroup()
              .addContainerGap(270, Short.MAX_VALUE)
              .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
      );
  
      contentPanel.add(jPanel3, "card4");
  
      jMenu1.setText("File");
  
      jMenuItem2.setText("Home");
      jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(java.awt.event.ActionEvent evt) {
              jMenuItem2ActionPerformed(evt);
          }
      });
      jMenu1.add(jMenuItem2);
  
      jMenuBar1.add(jMenu1);
  
      jMenu2.setText("Edit");
  
      jMenuItem1.setText("Item");
      jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(java.awt.event.ActionEvent evt) {
              jMenuItem1ActionPerformed(evt);
          }
      });
      jMenu2.add(jMenuItem1);
  
      jMenuItem3.setText("ItemList");
      jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(java.awt.event.ActionEvent evt) {
              jMenuItem3ActionPerformed(evt);
          }
      });
      jMenu2.add(jMenuItem3);
  
      jMenuBar1.add(jMenu2);
  
      setJMenuBar(jMenuBar1);
  
      org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
      getContentPane().setLayout(layout);
      layout.setHorizontalGroup(
          layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
          .add(org.jdesktop.layout.GroupLayout.TRAILING, contentPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
      );
      layout.setVerticalGroup(
          layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
          .add(contentPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
      );
  
      pack();
  }// &lt;/editor-fold&gt;
  
  //Edit to see what are you searching
  public void readDataBase() throws Exception {
      try {
  
          // This will load the MySQL driver, each DB has its own driver
          Class.forName("com.mysql.jdbc.Driver");
          // Setup the connection with the DB
  
          connect = DriverManager.getConnection("jdbc:mysql://localhost/amp", "root", "root");
  
          // Statements allow to issue SQL queries to the database
          statement = connect.createStatement();
          // Result set get the result of the SQL query
          resultSet = statement
                  .executeQuery("select * from amp.barang");
          //writeResultSet(resultSet);
  
          while (resultSet.next()) {
              System.out.println(resultSet.getNString(1));
          }
          //writeMetaData(resultSet);
          // PreparedStatements can use variables and are more efficient
  
      } catch (Exception e) {
          throw e;
      } finally {
          close();
      }
  }
  
  //Show table + collumns name
  private void writeMetaData(ResultSet resultSet) throws SQLException {
      //   Now get some metadata from the database
      // Result set get the result of the SQL query
  
      System.out.println("The columns in the table are: ");
  
      System.out.println("Table: " + resultSet.getMetaData().getTableName(1));
      for (int i = 1; i &lt;= resultSet.getMetaData().getColumnCount(); i++) {
          System.out.println("Column " + i + " " + resultSet.getMetaData().getColumnName(i));
      }
  }
  
  //Edit to set in table
  private void insertQueryBarang() throws Exception {
      try {
  
          // This will load the MySQL driver, each DB has its own driver
          Class.forName("com.mysql.jdbc.Driver");
          // Setup the connection with the DB
  
          connect = DriverManager.getConnection("jdbc:mysql://localhost/amp", "root", "root");
  
          // Statements allow to issue SQL queries to the database
          statement = connect.createStatement();
          // Result set get the result of the SQL query
          statement
                  .executeUpdate("INSERT INTO `amp`.`barang` (`idbarang`,`namaBarang`,`keteranganBarang`) "
                  + "VALUES ('02','B','this is B')");
          //writeResultSet(resultSet);
  
          //writeMetaData(resultSet);
          // PreparedStatements can use variables and are more efficient
  
      } catch (Exception e) {
          throw e;
      } finally {
          close();
      }
  
  }
  
  //See result
  private void writeResultSet(ResultSet resultSet) throws SQLException {
      // ResultSet is initially before the first data set
      while (resultSet.next()) {
          // It is possible to get the columns via name
          // also possible to get the columns via the column number
          // which starts at 1
          // e.g. resultSet.getSTring(2);
          String user = resultSet.getString("myuser");
          String website = resultSet.getString("webpage");
          String summary = resultSet.getString("summary");
          Date date = resultSet.getDate("datum");
          String comment = resultSet.getString("comments");
          System.out.println("User: " + user);
          System.out.println("Website: " + website);
          System.out.println("Summary: " + summary);
          System.out.println("Date: " + date);
          System.out.println("Comment: " + comment);
      }
  }
  
  private void setTableItemList() {
      topPanel = new JPanel();
      topPanel.setLayout(new BorderLayout());
      getContentPane().add(topPanel);
  
      // Create columns names
      String columnNames[] = {"Column 1", "Column 2", "Column 3"};
  
      // Create some data
      String dataValues[][] = {
          {"12", "234", "67"},
          {"-123", "43", "853"},
          {"93", "89.2", "109"},
          {"279", "9033", "3092"}
      };
  
      // Create a new table instance
      table = new JTable(dataValues, columnNames);
  
      // Add the table to a scrolling pane
      ScrollPane = new JScrollPane(table);
      topPanel.add(ScrollPane, BorderLayout.CENTER);
      jPanel3.add(topPanel);
  }
  
  private void close() {
      try {
          if (resultSet != null) {
              resultSet.close();
          }
  
          if (statement != null) {
              statement.close();
          }
  
          if (connect != null) {
              connect.close();
          }
      } catch (Exception e) {
      }
  }
  
  private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
      // TODO add your handling code here:
      CardLayout cl = (CardLayout) (contentPanel.getLayout());
      cl.show(contentPanel, "card2");
  }                                          
  
  private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {                                           
      // TODO add your handling code here:
      CardLayout cl = (CardLayout) (contentPanel.getLayout());
      cl.show(contentPanel, "card3");
  }                                          
  
  private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
      // TODO add your handling code here:
  }                                           
  
  private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {                                           
      // TODO add your handling code here:
      CardLayout cl = (CardLayout) (contentPanel.getLayout());
      cl.show(contentPanel, "card4");
  }                                          
  
  /**
   * @param args the command line arguments
   */
  public static void main(String args[]) throws Exception {
      /* Set the Nimbus look and feel */
      //&lt;editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "&gt;
      /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
       * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
       */
      try {
          for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
              if ("Nimbus".equals(info.getName())) {
                  javax.swing.UIManager.setLookAndFeel(info.getClassName());
                  break;
              }
          }
      } catch (ClassNotFoundException ex) {
          java.util.logging.Logger.getLogger(MainPage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
      } catch (InstantiationException ex) {
          java.util.logging.Logger.getLogger(MainPage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
      } catch (IllegalAccessException ex) {
          java.util.logging.Logger.getLogger(MainPage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
      } catch (javax.swing.UnsupportedLookAndFeelException ex) {
          java.util.logging.Logger.getLogger(MainPage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
      }
      //&lt;/editor-fold&gt;
  
      /* Create and display the form */
      MainPage dao = new MainPage();
      //dao.insertQueryBarang();
      dao.readDataBase();
      dao.setTableItemList();
      java.awt.EventQueue.invokeLater(new Runnable() {
          public void run() {
              new MainPage().setVisible(true);
          }
      });
  }
  // Variables declaration - do not modify
  private javax.swing.JPanel contentPanel;
  private javax.swing.JButton jButton1;
  private javax.swing.JLabel jLabel1;
  private javax.swing.JLabel jLabel2;
  private javax.swing.JLabel jLabel3;
  private javax.swing.JLabel jLabel4;
  private javax.swing.JMenu jMenu1;
  private javax.swing.JMenu jMenu2;
  private javax.swing.JMenuBar jMenuBar1;
  private javax.swing.JMenuItem jMenuItem1;
  private javax.swing.JMenuItem jMenuItem2;
  private javax.swing.JMenuItem jMenuItem3;
  private javax.swing.JPanel jPanel1;
  private javax.swing.JPanel jPanel2;
  private javax.swing.JPanel jPanel3;
  private javax.swing.JPanel jPanel4;
  private javax.swing.JScrollPane jScrollPane1;
  private javax.swing.JTextArea jTextArea1;
  private javax.swing.JTextField jTextField1;
  private javax.swing.JTextField jTextField2;
  // End of variables declaration
  }
  </code></pre>