title: How to make JTable show refreshed data after updating database?
body: <p>I have updated a database and I would like to refresh a <code>JTable</code> with this code tied to a button click event, but it doesn't work. When I close aplication and open it again <code>JTable</code> shows the right data.</p>
  
  <p>Do I need to override some method on my abstract table?</p>
  
  <pre><code>try {
          model=new MyTableModel(this.database);
          table = new JTable(model);
      } catch (SQLException e) {
  
          e.printStackTrace();
      }
  
  scrollPane = new JScrollPane(table);
  
  refresh.addActionListener(new ActionListener() {
  
      public void actionPerformed(ActionEvent e) {
  
          ((MyTableModel)table.getModel()).fireTableDataChanged();
  
      }
  });
  
   class MyTableModel extends AbstractTableModel {
      private int i;
      private String[] columnNames = { "ID", "Code", "Country", "Radio",
              "primljeno", "select" };
  
      private Object[][] data = { { new Integer(0), "", "", "", "",
              new Boolean(false) } };
  
      public MyTableModel(My_class_Database database)throws SQLException {
              init(database);
  
  
      }
      public void init(My_class_Database database) throws SQLException
      {
          this.i = database.checkIsDataThere();
          Object[][] object;
          if (i == 0) {
              object = new Object[i][7];
              object = database.getDatafromDatabase(this.i);
              this.data = object;
              dataAp = object;
  
          } else {
              object = database.getDatafromDatabase(this.i);
              textField.setText("No data in database");
          }
  
      }
  
      public int getColumnCount() {
          return columnNames.length;
      }
  
      public int getRowCount() {
          return data.length;
      }
  
      public Object getValueAt(int row, int col) {
          return data[row][col];
  
      }
  
      public String getColumnName(int col) {
          return columnNames[col];
      }
  
      public void setValueAt(Object value, int row, int col) {
  
          data[row][col] = value;
          fireTableCellUpdated(row, col);
  
      }
  
      // problem sa null vrijednostima,null exception
      public Class getColumnClass(int c) {
          return getValueAt(0, c).getClass();
      }
  
      public boolean isCellEditable(int row, int col) {
          if (col &gt; 4) {
              return true;
          } else
              return (false);
      }
  
  }
  </code></pre>