私はここでアプリケーションを作成し、バスケットに取り組んでいます。
これはボタンです(製品が追加されるたびに、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());
}
}
わかりました。これには2つの問題があります。1)ラベルはボタンのsetTextに応答しないため、他のボタンに配置してもラベルは変更されません。2)複数の商品を追加した場合、商品は下から上にしか削除できないため、最後に作成したボタン、次に続くボタンにのみ反応します。
誰もが助けてくれることを願っています!