我有一个Till系统,我希望在GUI的一侧向我的订单表(JTable)添加项目。我也希望在点击每个JButton时总计订单。我的问题是,我似乎无法使每个JButton的侦听器方法足够动态,因此总数将根据订单中是否添加或删除项目而更新。它是在JTextField中按下每个项目的总计,但它没有将它四舍五入到正确的小数位数,应该是2.我尝试使用DecimalFormat但它没有工作。这是我的一个听众方法。如果我可以使这个方法正常工作并使其动态化,我可以将相同的原理应用于其余的侦听器方法。如果有人能指出我正确的方向,我将非常感激,谢谢你。
// Small Americano ActionListener
americanoSmall.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String query = "select ProductName, Price from product where ProductID = 24";
java.sql.PreparedStatement pst = connection.prepareStatement(query);
ResultSet rs = pst.executeQuery();
// Loop through the ResultSet and transfer in the Model
java.sql.ResultSetMetaData rsmd = rs.getMetaData();
int colNo = rsmd.getColumnCount();
while (rs.next()) {
Object[] objects = new Object[colNo];
for (int i = 0; i < colNo; i++) {
objects[i] = rs.getObject(i + 1);
}
DefaultTableModel model = (DefaultTableModel) table.getModel();
model.addRow(objects);
Stock s = new Stock();
total = total + s.getItemPrice(24);
totalTF.setText(String.valueOf(total));
totalTF.setText(String.format("%.2f", total));
}
TableModel model = (DefaultTableModel) table.getModel();
table.setModel(model);
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
答案 0 :(得分:1)
我想让它足够动态,以便在订单编辑时 - 即:从列表中删除某些内容,相应的总更新
向TableModelListener
添加TableModel
。更改数据或添加或删除行时将生成事件。然后,您只需遍历模型中的数据即可重新计算总数。
不要试图保持一个总计,因为当你删除一行时,你不知道要从总数中删除多少。