为什么在单击按钮时会调用此方法两次?

时间:2013-07-16 21:31:09

标签: java methods combobox applet

我正在构建一个简单的applet,在我的applet中,我有一个带有下拉列表的组合框。选择一个选项后,按钮"添加"单击,选择并传递给创建对象的方法。唯一的问题是,当我单击按钮时,它会将对象添加好,但是当我尝试添加另一个slelection时,它会删除前一个并将新值设置为与新值相同的属性。所以本质上是重新添加选择。

btnAdd.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                addTooObj(comboBox.getSelectedItem().toString(), lblStatusLabel);
                System.out.println(comboBox.getSelectedIndex());

            }

        });



 private void addToobj(String num,JLabel j){
        System.out.println(num);
        Object objToBeAdded = null;
        long objNumber = Long.parseLong(num);
        int quan = 0;
        if (objNumber == 12354589621l) {
            objToBeAdded = new Item(objNumber, 2.00, quan);
        } else if (objNumber == 21) {
            objToBeAdded = new Item(objNumber, 1.50, quan);
        } else if (objNumber == 12) {
            objToBeAdded = new Item(objNumber, 5.20, quan);
        } else {
            System.out.println("error");
        }

         oldObj.add(objToBeAdded);
     }

1 个答案:

答案 0 :(得分:0)

actionPerformed方法中,您可以获取操作命令并查看已触发的操作,然后仅在操作是您想要的操作时调用您的方法。

public void actionPerformed(ActionEvent e) {
     String action = e.getActionCommand();
     System.out.println("The action was: " + action);
     if(action.equals("What ever action you want")){
         addTooObj(comboBox.getSelectedItem().toString(), lblStatusLabel);
         System.out.println(comboBox.getSelectedIndex());
     }

}