Java选中表格商品列表并点击结算实现输入多少商品数量就减少多少商品数量的示例代码
时间: 2024-03-09 22:51:25 浏览: 49
以下是一个完整的Java示例代码,可以实现选中表格商品列表并点击结算时,输入多少商品数量就减少多少商品数量的功能:
```java
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CheckoutDemo extends JFrame {
private JTable productTable;
private DefaultTableModel tableModel;
private JButton checkoutButton;
public CheckoutDemo() {
setTitle("超市结算");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 初始化商品列表表格
tableModel = new DefaultTableModel(
new Object[][]{
{"苹果", 10},
{"香蕉", 15},
{"橙子", 12},
{"西瓜", 20}
},
new String[]{"商品名称", "库存数量"}
);
productTable = new JTable(tableModel);
// 初始化结算按钮
checkoutButton = new JButton("结算");
checkoutButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
checkout();
}
});
// 将表格和按钮添加到UI界面中
JPanel contentPanel = new JPanel(new BorderLayout());
contentPanel.add(new JScrollPane(productTable), BorderLayout.CENTER);
contentPanel.add(checkoutButton, BorderLayout.SOUTH);
setContentPane(contentPanel);
// 设置UI界面大小和位置,并显示出来
setSize(400, 300);
setLocationRelativeTo(null);
setVisible(true);
}
// 在某个方法中实现选中商品并结算的逻辑
public void checkout() {
// 定义一个变量来记录选中的商品数量
int selectedProductCount = 0;
// 遍历表格中所有的行
for (int i = 0; i < productTable.getRowCount(); i++) {
// 检查当前行是否被选中
if (productTable.isRowSelected(i)) {
// 获取用户输入的商品数量
String inputCount = JOptionPane.showInputDialog("请输入购买数量:");
int count = Integer.parseInt(inputCount);
// 获取商品名称和库存数量
String name = (String) productTable.getValueAt(i, 0);
int stockCount = (int) productTable.getValueAt(i, 1);
// 检查库存是否充足
if (count > stockCount) {
JOptionPane.showMessageDialog(null, name + "库存不足!");
} else {
// 更新库存数量
productTable.setValueAt(stockCount - count, i, 1);
selectedProductCount += count; // 选中商品数量加上用户输入的数量
}
}
}
// 根据选中商品的数量进行结算
double totalPrice = selectedProductCount * 10.0; // 假设每个商品的价格都是10元
// 在UI上显示总价等信息...
JOptionPane.showMessageDialog(null, "选中商品数量:" + selectedProductCount + "\n" +
"总价:" + totalPrice);
}
public static void main(String[] args) {
new CheckoutDemo();
}
}
```
在上述代码中,我们创建了一个`CheckoutDemo`类来展示超市结算的UI界面。在`checkout()`方法中,我们首先定义了一个变量`selectedProductCount`来记录选中的商品数量。然后,我们遍历表格中的所有行,检查每行是否被选中。如果当前行被选中,我们会弹出一个对话框,让用户输入购买数量。然后,我们获取商品名称和库存数量,并检查用户输入的数量是否小于等于库存数量。如果库存充足,我们会更新库存数量,并将选中商品数量加上用户输入的数量。最后,我们根据选中商品的数量计算总价,并在UI上显示相关信息。
阅读全文