一键单击多个事件

时间:2019-10-08 03:00:56

标签: java events actionlistener

我有一个程序可以搜索并为您提供框架(Frame1)中的对象列表。我在菜单中添加了一个JInternalFrame对象创建,因此您可以在保存和存储对象的标签下打开其中的一个。您可以打开多个此保存框架。在对象列表(在Frame1中)上,有一个弹出菜单(菜单1),因此您可以选择保存选项。完成后,将显示另一个弹出菜单(menu2),显示您创建的不同保存帧(Frame2,Frame3等)。为此,每次单击第一个弹出菜单(menu1)上的保存按钮时,我都会添加一个for循环,因为您可以在打开搜索框架(Frame1)之后添加保存框架(Frame4,...)。问题在于,每次mouseListener事件在第二个弹出菜单(menu2)中发生时,它都会累积。例如,我所做的第一个保存将按原样保存。第二次保存将对象保存两次。第三个将对象保存三次,依此类推。

我想这是由于多次调用该事件而发生的。如果这是问题所在,有没有办法在蜂鸣之后清除事件?在事件参数字符串中,您可以看到多次调用时的时间是相同的。

private void popSaveActionPerformed(java.awt.event.ActionEvent evt) {                                        
    savesCreados = frmMenuP.getSaves(); //# of JFrames(int)
    xy=getXY();
    menuSaves = frmMenuP.getMenuSaves(); //JMenuItems
    int selectedRowIndex = tabResults.getSelectedRow();
    nombre = tabResults.getValueAt(selectedRowIndex,0).toString(); //Object to save
    for(int i=0;i<savesCreados;i++){
        JPopupMenu2.add(menuSaves.get(i));
        System.out.println(i);
        menuSaves.get(i).addActionListener(new 
java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            popSaveMenu(evt);
        }
    });
    }
    JPopupMenu2.show(tabResults,xy[0],xy[1]);
    }



private void popSaveMenu(java.awt.event.ActionEvent evt){
    listaSaves = frmMenuP.getListaSaves();  //JFrames
    System.out.println(evt.paramString()); 
    for(int i=0;i<=frmMenuP.getSaves();i++){
        if(evt.getActionCommand().contains(Integer.toString(i))){
            System.out.println("Guardar " + i);

            listaSaves.get(i-1).saveAt(nombre);
        }
    }
    }

0 1个 ACTION_PERFORMED,cmd = Save1,当= 1570501305410时,修饰符= Button1 守护者1

0 1个 ACTION_PERFORMED,cmd = Save1,当= 1570501315585时,修饰符= Button1 守护者1 ACTION_PERFORMED,cmd = Save1,当= 1570501315585时,修饰符= Button1 守护者1

0 1个 ACTION_PERFORMED,cmd = Save1,当= 1570501378104时,修饰符= Button1 守护者1 ACTION_PERFORMED,cmd = Save1,当= 1570501378104时,修饰符= Button1 守护者1 ACTION_PERFORMED,cmd = Save1,当= 1570501378104时,修饰符= Button1 守护者1

0 个答案:

没有答案