gpt4 book ai didi

java - 库存管理JAVA(检查项目是否已存在)

转载 作者:太空宇宙 更新时间:2023-11-04 09:14:29 24 4
gpt4 key购买 nike

我正在使用netbeans制作清单应用程序,其中在添加按钮中,它将数据添加到表中,并检查表中是否已存在数据。

在我的代码中,它使我可以在第一行中添加数据,但是当我尝试再次添加时,它却不允许我进行添加。当我尝试添加相同的数据时,它也不检查表中是否存在该项目。

这是我的代码:

private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          
// TODO add your handling code here:
if (nameTF.getText().equals("")||quantityTF.getText().equals("")||priceTF.getText().equals("")){
JOptionPane.showMessageDialog(null, "Enter item!", "ERROR", JOptionPane.ERROR_MESSAGE);
} else {
if(model.getRowCount()<100){

String item[] = new String[100];
String product = nameTF.getText();
int quantity = Integer.parseInt(quantityTF.getText());
double price = Integer.parseInt(priceTF.getText());
int x = model.getRowCount();
boolean itemExist = false;

item[x] = product + "\t" + quantity + "\t" + price;

for (int j = 0; j<x; j++) { //check whether item is in the list already
String[] temp = item[j].split("\t");

if (temp[0].equals(product)){
itemExist = true;
}
}

if(itemExist!=true){

final int id = ++count;
model.insertRow(model.getRowCount(), new Object[]{id,product,quantity,price});
JOptionPane.showMessageDialog(null, "Item Added Successfully!", "Success", JOptionPane.INFORMATION_MESSAGE);
}else{
JOptionPane.showMessageDialog(null, "Item already exist!", "Check your items", JOptionPane.WARNING_MESSAGE);
}
}
else{
JOptionPane.showMessageDialog(null, "Inventory Full!", "ERROR", JOptionPane.ERROR_MESSAGE);
}
}

}


我找不到错误。请帮我。提前谢谢您!

最佳答案

如下进行:

private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
if ("".equals(nameTF.getText()) || "".equals(quantityTF.getText()) || "".equals(priceTF.getText())) {
JOptionPane.showMessageDialog(null, "Enter item!", "ERROR", JOptionPane.ERROR_MESSAGE);
} else {
if (model.getRowCount() < 100) {
String item[] = new String[100];
String product = nameTF.getText();
int quantity = Integer.parseInt(quantityTF.getText());
double price = Integer.parseInt(priceTF.getText());
boolean itemExist = false;

// check whether item is in the list already
for (int j = 0; j < model.getRowCount(); j++) {
if (product != null && product.equals(model.getRow(j).getProduct())) {
itemExist = true;
break;
}
}

if (!itemExist) {
final int id = ++count;
model.insertRow(model.getRowCount(), new Object[] { id, product, quantity, price });
JOptionPane.showMessageDialog(null, "Item Added Successfully!", "Success",
JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Item already exist!", "Check your items",
JOptionPane.WARNING_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(null, "Inventory Full!", "ERROR", JOptionPane.ERROR_MESSAGE);
}
}
}


我已经在代码中解决了以下问题:


将字符串比较为 "".equals(nameTF.getText())而不是容易出现 nameTF.getText().equals("")NullPointerException(因为 nameTF.getText()可能返回 null
找到产品时打破循环
用更直观的形式 if(itemExist!=true)替换 if (!itemExist)


我的假设是应该有某种方法可以从模型中按索引获取行(例如,我用过 model.getRow(j)),也应该有一种方法可以从每行/记录中获取 product(例如,我用过< cc>)

如有任何疑问,请随时发表评论。

关于java - 库存管理JAVA(检查项目是否已存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59235315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com