gpt4 book ai didi

java - 产品删除按钮 react 不佳

转载 作者:行者123 更新时间:2023-12-01 14:58:48 26 4
gpt4 key购买 nike

我在这里制作了一个应用程序并在篮子上工作。

Basket

这是按钮(每次添加产品时都会有一个 X 删除按钮):

for(int i=0;i < products.size(); i++){
btnDeleteproduct = new JButton("X");
btnDeleteproduct.setBounds(380, verticalPosition + i * productOffset, 20, 20);
btnDeleteproduct.setFont(WinkelApplication.FONT_10_BOLD);
btnDeleteproduct.setName("" + i);
btnDeleteproduct.addActionListener(this);
this.add(btnDeleteproduct);
}

productamount是设置标签aantal,其中包含产品的数量:

productamount = (int) WinkelApplication.getBasket().getProductAmount(productdelete);
if (event.getSource() == btnDeleteproduct) {
productamount--;
lblamount.setText("" + productamount);
WinkelApplication.getInstance().showPanel(new view.Payment());
if (productamount < 1) {
WinkelApplication.getBasket().deleteProduct(productdelete);
}
}

现在最后一批是deleteProduct方法:

 public void deleteProduct(Product product) {
// check if product is allready added to the basket
if (products.containsKey(product)) {
products.remove(product);
WinkelApplication.getInstance().showPanel(new view.Payment());
}
if(products.size() == 0){
WinkelApplication.getInstance().showPanel(new view.CategoryList());
}
}

好吧,我有两个问题。 1)标签不响应按钮中的setText,因此如果我将其放在其他按钮中,它不会改变,它确实会改变。 2)如果我添加超过 1 个产品,我只能从下到上删除产品,因此它只对最后一个按钮使用react,然后对以下按钮使用react,依此类推。

希望大家能帮忙!

最佳答案

对于第二点:

for(int i=0;i < products.size(); i++){
btnDeleteproduct = new JButton("X");
btnDeleteproduct.setBounds(380, verticalPosition + i * productOffset, 20, 20);
btnDeleteproduct.setFont(WinkelApplication.FONT_10_BOLD);
btnDeleteproduct.setName("" + i);
btnDeleteproduct.addActionListener(this);
this.add(btnDeleteproduct);
}

创建删除按钮时,您只需保留 btnDeleteproduct 引用。当您在每次迭代中覆盖它时,您只保留最后一个迭代

if (event.getSource() == btnDeleteproduct) {

checkin 您的监听器。

解决方案:创建一个监听器类来保存要删除的产品的 key 。为每个按钮实例化一个不同的对象,并将其添加为监听器,而不是对所有按钮使用单个监听器。

关于java - 产品删除按钮 react 不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13988555/

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