java - 如何将双精度类型值添加到 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*
解决方案
自动装箱应该让您轻松添加双精度:
v.add(price);
double
是原始类型,你不能将它们添加到Vector
s,但是 Java 有一个对应于每个原始类型的对象类型,因此它会当场转换price
为 的实例,并将该实例添加到你的.Double
Vector
快速旁注:这意味着,除其他外,由于您创建了新对象,您将在堆空间中付出很小的代价,因此如果您经常这样做,请注意这一点。
另外:DefaultTableModel
非常简单TableModel
。但是它可以很容易地制作原型。当您有空闲时间时,如果您需要改进此代码,我鼓励您以TableModel
各种方式寻找您会发现更合适的实现,例如让您从现有数据结构中提取值,而不是将它们放入全新Vector
的 s 中。例如,一个好的下一步是TableModel
为这个特定的表编写自己的实现。
推荐阅读
- python - 为什么 ZeroMQ 示例不起作用?
- java - 如何在不创建新对象的情况下从另一个类访问非静态变量
- aws-api-gateway - 尝试通过 Cloudformation 创建 AWS API 网关时出错
- java - 在 Cygwin 编译 Java 时出现乱码
- blockchain - 区块链网络中的新交易
- javascript - Bootstrap datetimepicker - 不会显示日历或格式化日期
- php - 从windows命令行向php网页发送数据(变量)
- php - 在codeigniter中使用id显示数据记录
- kubernetes - Kubernetes:多个 pod 还是多个部署?
- amazon-redshift - 如何使用红移光谱查看 S3 中的数据目录表