【问题标题】:i have 4 variable data,how to display them on jtable我有 4 个可变数据,如何在 jtable 上显示它们
【发布时间】:2014-01-05 10:34:45
【问题描述】:

朋友,每次单击按钮时,我都有 4 个带有数据的变量,我想将这 4 个变量添加到名为 Bill_Table 的具有 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());
    }

}                                        

【问题讨论】:

  • 运行这段代码会发生什么?有错误吗?它怎么没有完成你的目标?
  • 你为什么不使用你上次发帖中建议的PreparedStatement
  • camickr,我可以在没有准备好的语句的情况下从数据库中读取数据,但问题是我不知道如何在 JTable 中连续显示 item_price,item_name,item_no,item_amount

标签: java mysql swing jtable netbeans-7


【解决方案1】:

我已经找到方法了,效果很好

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

【讨论】:

    猜你喜欢
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 2016-09-24
    • 2011-11-07
    相关资源
    最近更新 更多