私は、関数がJListで選択された項目を渡し、ユーザーがJButtonをクリックしたときにJTextFieldの値を渡す関数を実装しています。JButtonでActionPerformedが複数回呼び出されましたか?
私はいくつかのリスナーを使用しています。しかし、ユーザーがボタンを2回押して不要な結果を生成すると、addcartbtn内のループactionPerformedが2回呼び出されたようです。ユーザーが3回目を押すと、関数は3回呼び出されたように見えます。
list.addListSelectionListener(new ListSelectionListener() {
Map<String, Integer> cartlist = new HashMap<String, Integer>();
public void valueChanged(final ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
System.out.println("test0");
final ArrayList<String> cartArrayList = new ArrayList<String>();
addcartbtn.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e2) {
System.out.println("test2");
String itemselected = "";
System.out.println("Index is " + e.getLastIndex());
String itemname = (String) hashmap.get(e.getLastIndex());
itemselected = itemname;
//System.out.println(itemselected);
try {
int insertedquantity = Integer.parseInt(quantity.getText());
cartlist.put(itemselected, insertedquantity);
//shoppingcart.revalidate();
String element = itemselected + " " + String.valueOf(insertedquantity);
cartArrayList.add(element);
System.out.println(element);
//System.out.println(counter);
shoppingcart.setListData(cartArrayList.toArray());
shoppingcart.revalidate();
shoppingcart.repaint();
System.out.println("---------");
} catch (NumberFormatException ex) {
System.out.println("Not a number!");
}
}
});
}
}
});
ありがとうございました!
非常にありがとう、それは解決されています:) – user1311794