public class Fenetre extends JFrame { protected Action action; public Fenetre() { super(); action = new Action(); JButton tonBouton = new JButton("tonBouton"); tonBouton.setName("tonBouton"); tonBouton.addActionListener(action); } protected void boutonClick() { // le code lors du clic // vu que c'est dans la classe principale, tu as accès à tout } private class Action implements ActionListener { public void actionPerformed(ActionEvent e) { if ("tonBouton".equals((JComponent) e.getSource()).getName()) { SwingUtilities.invokeLater(new Runnable() { public void run() { boutonClick(); } }); } } } }