i have a JTable which data is called form a SQL database when a button is pressed i take some variable from a combobox and a textfield for the SQL query. it works the first time and loads up what i want correctly then when i click a record it should fill some textfields with information this also works but when i try to do a new search i get pushed to my catch as this is all in a try and catch loop. a Optionpane comes up and i click ok and it carriers on but the old information is not replaced. when i click on the old information though the new one comes up and the textfields are filled correctly. here is my code any help would be greatly appreciated
package possystem;import javax.swing.JOptionPane;import javax.swing.table.*;import java.util.Vector;import java.sql.*;import javax.swing.ListSelectionModel;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;import javax.swing.event.TableModelEvent;import javax.swing.table.AbstractTableModel;/* * DatabaseItemForm.java * * Created on 19-Oct-2011, 19:06:28 *//** * * @author Owner */public class DatabaseItemForm extends javax.swing.JFrame { ListSelectionModel listSelectionModel; /** Creates new form DatabaseItemForm */ public DatabaseItemForm() { initComponents(); } /** 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") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jPanel1 = new javax.swing.JPanel(); searchResultsScrollpane = new javax.swing.JScrollPane(); searchResults = new javax.swing.JTable(); searchByLB = new javax.swing.JLabel(); searchByCB = new javax.swing.JComboBox(); searchByTF = new javax.swing.JTextField(); searchByBT = new javax.swing.JButton(); barcodeLB = new javax.swing.JLabel(); barcodeTF = new javax.swing.JTextField(); nameLB = new javax.swing.JLabel(); nameTF = new javax.swing.JTextField(); costLB = new javax.swing.JLabel(); costTF = new javax.swing.JTextField(); comfirmBT = new javax.swing.JButton(); closeBT = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); searchResults.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null} }, new String [] { "Id", "Barcode", "Name", "Cost" } ) { boolean[] canEdit = new boolean [] { false, false, false, false }; public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }); searchResults.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF); searchResults.setAutoscrolls(false); searchResults.setFillsViewportHeight(true); searchResults.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); searchResults.setShowHorizontalLines(false); searchResultsScrollpane.setViewportView(searchResults); searchResults.getColumnModel().getColumn(0).setResizable(false); searchResults.getColumnModel().getColumn(0).setPreferredWidth(50); searchResults.getColumnModel().getColumn(1).setResizable(false); searchResults.getColumnModel().getColumn(1).setPreferredWidth(100); searchResults.getColumnModel().getColumn(2).setResizable(false); searchResults.getColumnModel().getColumn(2).setPreferredWidth(200); searchResults.getColumnModel().getColumn(3).setResizable(false); searchResults.getColumnModel().getColumn(3).setPreferredWidth(100); searchByLB.setText("Search By:"); searchByCB.setEditable(true); searchByCB.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Please Choose", "Barcode", "Name", "Cost" })); searchByBT.setText("Search"); searchByBT.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { searchByBTActionPerformed(evt); } }); barcodeLB.setText("Please Enter Barcode"); nameLB.setText("Please Enter Name"); costLB.setText("Please Enter Cost"); comfirmBT.setText("Comfirm Changes"); comfirmBT.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { comfirmBTActionPerformed(evt); } }); closeBT.setText("Close"); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(21, 21, 21) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(searchByLB) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(searchByCB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(searchByTF, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(searchByBT)) .addComponent(nameLB) .addComponent(costLB) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(barcodeTF, javax.swing.GroupLayout.Alignment.LEADING) .addComponent(nameTF, javax.swing.GroupLayout.Alignment.LEADING) .addComponent(costTF, javax.swing.GroupLayout.Alignment.LEADING) .addComponent(barcodeLB, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 222, Short.MAX_VALUE) .addComponent(comfirmBT))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 190, Short.MAX_VALUE)) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(searchResultsScrollpane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))) .addComponent(closeBT) .addContainerGap()) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(closeBT)) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup() .addGap(22, 22, 22) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(searchByLB) .addComponent(searchByCB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(searchByTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(searchByBT)) .addGap(18, 18, 18) .addComponent(barcodeLB) .addGap(18, 18, 18) .addComponent(barcodeTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(nameLB) .addGap(18, 18, 18) .addComponent(nameTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(costLB) .addGap(18, 18, 18) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(costTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(comfirmBT)) .addGap(18, 18, 18) .addComponent(searchResultsScrollpane, javax.swing.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE))) .addContainerGap()) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); pack(); }// </editor-fold> private void searchByBTActionPerformed(java.awt.event.ActionEvent evt) { String searchType = (String) searchByCB.getSelectedItem(); String searchText = searchByTF.getText(); tableFiller(searchType, searchText); } private void comfirmBTActionPerformed(java.awt.event.ActionEvent evt) { String changeBarcode = barcodeTF.getText(); String changeName = nameTF.getText(); double changePrice = Double.parseDouble(costTF.getText()); try { DriverManager.registerDriver(new com.mysql.jdbc.Driver()); Connection conn = DriverManager.getConnection("REMOVED"); ResultSet rs = conn.createStatement().executeQuery("UPDATE Test_items SET null," + changeBarcode + ", " + changeName + "," + changePrice + " WHERE "); } catch (Exception ex) { JOptionPane.showMessageDialog(rootPane, "Something is Wrong"); } } public void tableFiller (String searchType, String searchText) { try { DriverManager.registerDriver(new com.mysql.jdbc.Driver()); Connection conn = DriverManager.getConnection("REMOVED"); //Access Rows and Columns from database Vector<String> Columns = new Vector<String>(); Vector<Vector<Object>> Rows = new Vector<Vector<Object>>(); ResultSet rs = conn.createStatement().executeQuery("select * from Test_items where " + searchType + " = " + searchText + ""); ResultSetMetaData metaDt = rs.getMetaData(); int cols = metaDt.getColumnCount(); Columns.clear(); // clear unwanted value if exist any in Columns variable.//Get Columns From database for (int i = 1; i <= cols; i++) { Columns.addElement(metaDt.getColumnName(i)); } Rows.clear(); // clear unwanted value if exist any in Rows variable. //Get RowsNames From database while (rs.next()) { Vector<Object> row = new Vector<Object>(cols); for (int i = 1; i <= cols; i++) { row.addElement(rs.getObject(i)); } Rows.addElement(row); } DefaultTableModel Model = new DefaultTableModel(Rows, Columns); searchResults.setModel(Model); searchResults.getColumnModel().getColumn(0).setPreferredWidth(50); searchResults.getColumnModel().getColumn(1).setPreferredWidth(100); searchResults.getColumnModel().getColumn(2).setPreferredWidth(200); searchResults.getColumnModel().getColumn(3).setPreferredWidth(100); listSelectionModel = searchResults.getSelectionModel(); listSelectionModel.addListSelectionListener(new SharedListSelectionHandler()); searchResults.getModel().addTableModelListener(searchResults); repaint(); conn.close(); } catch (Exception ex) { JOptionPane.showMessageDialog(rootPane, "Something is Wrong"); } } class SharedListSelectionHandler implements ListSelectionListener { @Override public void valueChanged(ListSelectionEvent e) { barcodeTF.setText(searchResults.getValueAt(searchResults.getSelectedRow(), 1).toString()); nameTF.setText(searchResults.getValueAt(searchResults.getSelectedRow(), 2).toString()); costTF.setText(searchResults.getValueAt(searchResults.getSelectedRow(), 3).toString()); } } public void tableChanged(TableModelEvent e) { searchResults.tableChanged(new TableModelEvent(searchResults.getModel())); } // Variables declaration - do not modify private javax.swing.JLabel barcodeLB; private javax.swing.JTextField barcodeTF; private javax.swing.JButton closeBT; private javax.swing.JButton comfirmBT; private javax.swing.JLabel costLB; private javax.swing.JTextField costTF; private javax.swing.JPanel jPanel1; private javax.swing.JLabel nameLB; private javax.swing.JTextField nameTF; private javax.swing.JButton searchByBT; private javax.swing.JComboBox searchByCB; private javax.swing.JLabel searchByLB; private javax.swing.JTextField searchByTF; private javax.swing.JTable searchResults; private javax.swing.JScrollPane searchResultsScrollpane; // End of variables declaration }