Comportement identique => Action
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:
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:
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:
1 2 3 4 5 6 7
|
public class Essai {
public static void main(String[] args) {
MyJFrame fenetre = new MyJFrame();
fenetre.setVisible(true);
}
} |