Canevas pour la fenêtre principale d’une application JAVA
• Repose sur l’utilisation des « Actions » (voir classe interne MainAction qui implémente AbstractAction)
• La classe MainAction se trouve en fin de fichier java MainFrame.java
public class MainFrame extends JFrame implements … (Listeners selon besoin) {
/* *********************************************
* Action Identifiers
* ********************************************* */
static final private String LOAD = "Load something";
static final private String RUN = "Run something";
(…autres identifiants d’action selon besoin…)
static final private String ABOUT = "About";
static final private String EXIT = "Exit";
/* *********************************************
* Actions
* ********************************************* */
MainAction actionLoad = null;
MainAction actionRun = null;
(…autres actions selon ce qui a été défini par les identifiants ci-dessus…)
MainAction actionAbout = null;
MainAction actionExit = null;
/* Constructeur de la classe MainFrame */
public MainFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Titre de mon application");
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
thisWindowClosing(evt);
}
});
// build actions
initActions();
// build GUI
initGUI();
// autre code
(…autre code selon besoin…)
}
/* Méthode qui permet de créer et initialiser les actions */
private void initActions() {
// pour l’action associée à LOAD
actionLoad=new MainAction(LOAD,"icon01.gif","load description",new
Integer(KeyEvent.VK_L));
// pour l’action associée à RUN
actionRun=new MainAction(RUN,"icon02.gif","run descripion",new
Integer(KeyEvent.VK_R));
// pour l’action qui montre la boite de dialogue “About”
actionAbout=new MainAction(ABOUT,"icon03.gif","about this application",new
Integer(KeyEvent.VK_A));
// pour fermer l’application (identifiant EXIT)
actionExit=new MainAction(EXIT,"Close.gif","close application",new
Integer(KeyEvent.VK_E));