Médiaforma

Java – Savoir se passer de NetBeans

Print Friendly

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;
Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply