【问题标题】:How to add a double type value to a JTable row?如何将双精度类型值添加到 JTable 行?
【发布时间】:2018-09-11 15:35:31
【问题描述】:
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*

【问题讨论】:

    标签: java swing jtable netbeans-8


    【解决方案1】:

    Autoboxing 应该让您轻松添加双精度:

    v.add(price);
    

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多