如何将两种类型的值添加到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
是一个原始类型,你不能将它们添加到Vector
s,但Java有一个对应于每个基元的对象类型,因此它将price
转换为当场的Double
实例,并将该实例添加到你的Vector
。
快速旁注:这意味着,除了其他因素之外,由于您创建的新对象,您将在堆空间中支付一小笔费用,因此如果您经常这样做,请注意这一点。
另外:DefaultTableModel
非常简洁,因为TableModel
s去了。但它可以非常容易地进行原型设计。当你有空闲时间,并且如果你需要改进这些代码,我鼓励你寻找TableModel
的实现,你会发现它们更适合各种方式,比如让您从现有数据结构中提取值,而不是将它们放入全新的Vector
s中。例如,一个好的下一步是为这个特定的表编写自己的TableModel
实现。
以上是关于如何将两种类型的值添加到JTable行?的主要内容,如果未能解决你的问题,请参考以下文章
如何在按钮单击时将新行添加到数据库中的jTable而不清除现有行