Adding action listener Nested class implements ActionListener and overrides actionPerformed. public class Foo{ Foo(){ something.addActionListener(new ButtonListener()); } //... private class ButtonListener implements ActionListener{ public void actionPerformed(ActionEvent e){ //... } } } Current class implements ActionListener and overrides actionPerformed. public class Foo implements ActionListener{ Foo(){ something.addActionListener(this); } //... public void actionPerformed(ActionEvent e){ //... } } Anonymous class. public class Foo{ Foo(){ something.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ //... } }); } } Source: https://stackoverflow.com/q/5451010/9122512