Nous allons créer “à la main” (c’est-à-dire sans utiliser l’onglet Design) une version simplifiée de l’application Dessin à main levée précédente.
Créer un projet de type Java/Java Application avec fonction main(). On obtient ce code :
package jframe.et.menu.manuel;
public class JFrameEtMenuManuel {
public static void main(String[] args) {
}
}
Ajoutez extends javax.swing.JFrame à la suite du nom de la classe pour pouvoir créer une JFrame :
public class JFrameEtMenuManuel extends javax.swing.JFrame
Instanciez la classe JFrameEtMenuManuel dans main() :
public static void main(String[] args) {
JFrameEtMenuManuel frameEtMenu = new JFrameEtMenuManuel(); // Création de la fenêtre
}
Définissez les caractéristiques de la fenêtre dans le constructeur de la classe JFrameEtMenu :
public JFrameEtMenuManuel(){
this.setTitle("Titre de la fenêtre"); // Texte dans la barre de titre
this.setResizable(false); // Fenêtre non redimensionnable
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Fermeture de l'appli quand on clique sur la case Fermer
setSize(400,300); // Taille de la fenêtre
this.setVisible(true); // Affichage de la fenêtre
Implémentez le menu avant le this.setVisible :
JMenuBar mb = new JMenuBar();
JMenu m1 = new JMenu("Application");
JMenu m2 = new JMenu("Couleur");
mb.add(m1);
mb.add(m2);
JMenuItem i11 = new JMenuItem("Quitter");
JMenuItem i21 = new JMenuItem("Bleu");
JMenuItem i22 = new JMenuItem("Vert");
m1.add(i11);
m2.add(i21);
m2.add(i22);
this.setJMenuBar(mb);
Ajoutez un ActionListener avant le setMenuBar pour traiter la commande de menu Application/Quitter :
i11.addActionListener(new MenuActionListener());
Définissez la classe correspondante pour traiter l’action dans le menu :
class MenuActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
Nous allons maintenant implémenter l’événement drag de la souris pour tracer dans la fenêtre. Pour cela, nous ajoutons un MouseMotionListener et nous indiquons que nous voulons traiter l’événement MouseDragged :
addMouseMotionListener(new java.awt.event.MouseMotionAdapter(){
public void mouseDragged(java.awt.event.MouseEvent evt) {
formMouseDragged(evt);
}
});
La prochaine étape va consister à définir la méthode formMouseDragged() :
private void formMouseDragged(java.awt.event.MouseEvent evt) {
pointX1 = evt.getX();
pointY1 = evt.getY();
pointX2 = evt.getX();
pointY2 = evt.getY();
repaint();
}
Nous allons maintenant définir la méthode paint() :
public void paint(Graphics g) {
g.drawLine(pointX1, pointY1, pointX2, pointY2);
this.setJMenuBar(mb);
}
Il ne reste plus qu’à déclarer les variables et le programme est opérationnel :
int pointX1, pointX2, pointY1, pointY2;
JMenuBar mb;