如何将两种类型的值添加到JTable行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将两种类型的值添加到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);

我在这里计算总数。 double total = 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*
答案

Autoboxing应该让你轻松添加双倍:

v.add(price);

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

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

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

以上是关于如何将两种类型的值添加到JTable行?的主要内容,如果未能解决你的问题,请参考以下文章

如何在按钮单击时将新行添加到数据库中的jTable而不清除现有行

如何通过SQL将一列JCheckBox添加到JTable? [重复]

如何在 JTable 中添加行?

如何仅使用列标题创建JTable,不添加任何行

如何将选择列添加到显示搜索结果的 JTable

JTable 的单元格渲染器 - 彩色行