如何让两个JButton分开执行操作

时间:2013-12-13 17:43:41

标签: java swing jbutton actionlistener

每当我按下取消或保存在UI上时,它总是执行两个按钮。我已经尝试过无数种方法让它在actionperformed块中监听if语句,但它似乎忽略了它。我需要它,这样如果我点击保存它只执行onSave()并取消onCancel()。谢谢你的时间

public class EditTagPanel extends AbstractTagPanel implements ActionListener {

TagPanelEventListener tagPanelEventListener;
JButton save;
JButton cancel;


public EditTagPanel(ID3v1 id3v1Tag) {
super(id3v1Tag);

}

@Override
protected void configureActionFields() {
JPanel editOptionsPanel = new JPanel(new FlowLayout());
save = new JButton("Save");
save.addActionListener(this);
editOptionsPanel.add(save);
cancel = new JButton("Cancel");

cancel.addActionListener(this);
editOptionsPanel.add(cancel);
this.add(editOptionsPanel, BorderLayout.PAGE_END);
}

public void addTagPanelEventListener(TagPanelEventListener tagPanelEvent) {

this.tagPanelEventListener = tagPanelEvent;


}

@Override
public void actionPerformed(ActionEvent e) {

if (e.getSource().equals(save));
{
tagPanelEventListener.onSave(getId3v1Tag());
}

if(e.getSource().equals(cancel));
{
tagPanelEventListener.onCancel();
}

}

1 个答案:

答案 0 :(得分:0)

只需删除:

  

<强>

if-statment方法中的每个actionPerformed()之后

,例如下一个:

@Override
public void actionPerformed(ActionEvent e) {
    if (e.getSource().equals(save)) {
        tagPanelEventListener.onSave(getId3v1Tag());
    }

    if (e.getSource().equals(cancel)) {
        tagPanelEventListener.onCancel();
    }
}