Class x implements ActionListener { SwingWorker swingWorker; JButton b = new JB... d.addActionListener(this); public void actionPerformed(ActionEvent e){ object source = e.getSource(); if(source.equals(b)){ swingWorker = new SwingWorker<Null, Void>(){ @Override public void doInBackground() { //actions... return null; } }; } else if(...){ . . . } swingWorker.execute(); } . . . }