Bonjour à tous,

Je suis en train de développer une application et je voudrais avoir le même comportement en cliquant sur la croix rouge de la fenêtre que sur l'item 'Quitter' de la barre de menu de la fenêtre que j'ai.

J'y suis arrivé, mais à quel prix... Pourriez vous m'aider à améliorer mon code (avec une Action par exemple ?)

De plus, j'aimerais mettre un raccourcis sur l'item 'Quitter' qui produirait lui aussi le même résultat que l'item 'Quitter' ou la croix rouge.

Merci d'avance à tous pour vos réponses,

Tolliob

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
 
public class MyWindowListener implements WindowListener{
		@Override
		public void windowOpened(WindowEvent e) {}
 
        @Override
        public void windowClosing(WindowEvent e) {
        	ESSAI.action();
        }
 
		@Override
		public void windowClosed(WindowEvent e) {}
 
		@Override
		public void windowIconified(WindowEvent e) {}
 
		@Override
		public void windowDeiconified(WindowEvent e) {}
 
		@Override
		public void windowActivated(WindowEvent e) {}
 
		@Override
		public void windowDeactivated(WindowEvent e) {}
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
 
public class MyJFrame extends JFrame implements ActionListener {
	private static final long serialVersionUID = 1L;
 
	public MyJFrame() {
		// Proprietes de la fenetre
		int width = 400;
		int height = 200;
		this.setTitle("Essai");
		this.setBounds(100, 100, width, height);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
		// Definition d'un item
		JMenuItem quit = new JMenuItem("Quitter");
		quit.addActionListener(this);
 
		// Definition d'un menu
		JMenu action = new JMenu("Action");
		action.add(quit);
 
		// Definition d'une JMenuBar
		JMenuBar menuBar = new JMenuBar();
		this.setJMenuBar(menuBar);
		menuBar.add(action);
 
		// Ajout d'un ecouteur
		this.addWindowListener(new MyWindowListener());
	}
 
	public static void action() {
		System.out.println("Trop top !");
	}
 
	@Override
	public void actionPerformed(ActionEvent e) {
		ESSAI.action();
		this.dispose();
	}
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
public class Essai {
	public static void main(String[] args) {
		MyJFrame fenetre = new MyJFrame();
		fenetre.setVisible(true);
	}
}