首页 > 解决方案 > 如何将双精度类型值添加到 JTable 行?

问题描述

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)     
{                                         
    try {

        Connection c = DBconnection.conn();
        PreparedStatement ps = c.prepareStatement("SELECT * from menu where items=?");
        ps.setString(1, (String) jComboBox2.getSelectedItem());
        ResultSet rs = ps.executeQuery();           
        DefaultTableModel tbn = (DefaultTableModel) jTable1.getModel();

        Vector v = new Vector<>();
        v.add(jComboBox2.getSelectedItem());
       v.add(qty.getText());

在此行之后,我需要添加 double 类型的价格,我从数据库中获取它。我需要知道怎么做。请有人帮忙

        tbn.addRow(v);

我在这里计算总数。
双倍总计=0;

        for(int i=0; i<jTable1.getRowCount(); i++)
        {
            double amount = Double.parseDouble(String.valueOf(jTable1.getValueAt(i, 2)));
            jTable1.getValueAt(i,1));
            total+=amount;
        }
        Ltot.setText(String.valueOf(total));
    } catch (Exception ex) {
        Logger.getLogger(pos.class.getName()).log(Level.SEVERE, null, ex);
    }


}                         *emphasized text*

标签: javaswingjtablenetbeans-8

解决方案


自动装箱应该让您轻松添加双精度:

v.add(price);

double原始类型,你不能将它们添加到Vectors,但是 Java 有一个对应于每个原始类型的对象类型,因此它会当场转换price为 的实例,并将该实例添加到你的.DoubleVector

快速旁注:这意味着,除其他外,由于您创建了新对象,您将在堆空间中付出很小的代价,因此如果您经常这样做,请注意这一点。

另外:DefaultTableModel非常简单TableModel。但是它可以很容易地制作原型。当您有空闲时间时,如果您需要改进此代码,我鼓励您以TableModel各种方式寻找您会发现更合适的实现,例如让您从现有数据结构中提取值,而不是将它们放入全新Vector的 s 中。例如,一个好的下一步是TableModel为这个特定的表编写自己的实现。


推荐阅读