2013-12-17 1 views
-1

Друзья, у меня есть 4 переменных с данными при каждом нажатии кнопки, и я хочу добавить эти 4 переменные в JTable с именем Bill_Table с 4 столбцами.У меня есть 4 переменных данных, как их отображать на jtable

Новая строка должна быть добавлена ​​в JTable каждый раз, когда нажимается кнопка. Я попробовал следующий код. Я могу читать из базы данных, и я могу иметь 4 переменные, но я не могу вставить их в новую строку в JTable.

Как я могу это достичь?

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){           

    item_name=name.getText(); 
    int item_no=Integer.parseInt(no.getText()); 
    String sql="SELECT id,price FROM item WHERE item.name='"+item_name+"'"; 
    try{  
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con =(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/myshop","root","mysql"); 
     java.sql.Statement stmt=con.createStatement(); 
     if (stmt.execute(sql)) { 
      rs = stmt.getResultSet(); 
      JOptionPane.showMessageDialog(this, "succes","executed query",JOptionPane.PLAIN_MESSAGE); 
     } else { 
      System.err.println("select failed");} 
     int idIndex = rs.findColumn("id"); 
     int priceIndex = rs.findColumn("price"); 

     while(rs.next()){ 
      item_id=rs.getInt(idIndex); 
      item_price=rs.getInt(priceIndex); 

     } 
     item_amount = (item_price*item_no); 

     Vector data_rows = new Vector(); 

     data_rows.addElement(item_name); 
     data_rows.addElement(item_price); 
     data_rows.addElement(item_no); 
     data_rows.addElement(item_amount); 

     dtm.addRow(data_rows); 
     //dtm is DefaultTableModel object,delared globelly 
     bill_table.setModel(dtm); 
     //bill_table is table name 
    } 
    catch (Exception e){ 
     JOptionPane.showMessageDialog(this, e.getMessage()); 
    } 

}           
+1

Что происходит, когда вы запускаете этот код? Есть ли ошибка? Как это не завершает вашу задачу? – jzd

+2

Почему вы не используете 'PreparedStatement', как было предложено в вашем последнем сообщении? – camickr

+0

camickr, я могу читать данные из базы данных без подготовленного оператора, но проблема в том, что я не знаю, как отображать item_price, item_name, item_no, item_amount в строке в JTable – user2827435

ответ

0

Я нашел способ, и это работает отлично

DefaultTableModel tm = (DefaultTableModel) bill_table.getModel(); 
tm.addRow(new Object[]{item_name,item_price,item_no,item_amount});