Médiaforma

All posts tagged main levée

La plupart des applications Java sont dotées d’un système de menus. Il est vrai que c’est un moyen simple, fiable et universel de demander l’exécution d’une action. Cette section vous montre comme il est simple d’ajouter un système de menus dans une application Java avec NetBeans. Vous y découvrirez également comment générer des menus contextuels (Popup Menus) qui réagiront au clic droit de la souris.

Nous allons définir une petite application de dessin qui permettra de tracer des carrés et des ronds :

Créez un nouveau projet de type Java/Java Application sans créer de fonction main.

Ajoutez un JFrame form.

Insérez un contrôle Menu Bar.

 

 

Renommez les deux commandes de menu principales en Application et Couleur.

Glisser-déposer trois Menu Item : un sur le menu Application, deux sur le menu Couleur. Renommer ces « menu items » Quitter, Bleu et Rouge.

Définissez les procédures événementielles pour les trois commandes de menu.

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
  System.exit(0);
}

 

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
  couleur = java.awt.Color.BLUE;
}

private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
  couleur = java.awt.Color.RED;
}

Définissez la variable couleur comme ceci, dans la partie inférieure du code :

java.awt.Color couleur = java.awt.Color.BLACK;

Cliquez droit sur le JFrame et définissez les procédures événementielles de souris suivantes : Mouse/MousePressed(), Mouse/MouseReleased() et MouseMotion/MouseDragged() :

private void formMousePressed(java.awt.event.MouseEvent evt) {
    pointX1 = evt.getX();
    pointX2 = evt.getX();
    pointY1 = evt.getY();
    pointY2 = evt.getY();
    sourisClic = true;
    repaint();
}

private void formMouseReleased(java.awt.event.MouseEvent evt) {
    sourisClic = false;
}

private void formMouseDragged(java.awt.event.MouseEvent evt) {
    if (sourisClic) {
        pointX1 = pointX2;
        pointY1 = pointY2;
        pointX2 = evt.getX();
        pointY2 = evt.getY();
        repaint();
    }
}

Lorsque le bouton gauche de la souris est enfoncé, la position pointée est mémorisée dans les variables pontX1/pointY1 et pointX2/pointY2, on mémorise que le bouton est enfoncé et on repeint la fenêtre.

Lorsque le bouton gauche de la souris est relâché, on le mémorise en mettant à false la variable booléenne sourisClic.

Lorsque la souris est déplacée bouton gauche enfoncé (formMouseDragged et pas formMouseMoved), le point d’origine du nouveau segment pointX1/pointY1 est initialisé avec l’extrémité du dernier segment pointX2/pointY2, et l’extrémité du nouveau segment est initialisé avec la position de la souris, puis la fenêtre est repeinte.

Définissez les variables suivantes dans la partie inférieure du code :

int pointX1, pointX2, pointY1, pointY2;
boolean sourisClic = false;

Il ne reste plus qu’à définir la méthode paint() qui va repeindre la fenêtre :

public void paint(Graphics g) {
  g.setColor(couleur);
  g.drawLine(pointX1, pointY1, pointX2, pointY2);
  setJMenuBar(jMenuBar1);
}

La couleur de tracé est initialisée avec la variable couleur, le segment X1/Y1->X2/Y2 est tracé, puis le menu est retracé avec setJMenuBar(jMenuBar1); car il avait été effacé par le rafraîchissement de la fenêtre.


Lorsqu’un tableau a un aspect irrégulier, la façon la plus simple de le créer consiste à le tracer à main levée.

Sélectionnez l’onglet INSERTION dans le ruban, cliquez sur l’icône Tableau dans le groupe Tableaux et sélectionnez la commande Dessiner un tableau dans le menu.

Le pointeur de la souris prend la forme d’un crayon.

Dans un premier temps, définissez la taille du tableau : faites glisser le pointeur d’un coin du tableau vers le coin opposé.

Dans un deuxième temps, tracez les lignes et les colonnes du tableau.

Enfin, dans un troisième temps, effacez les lignes (ou portions de lignes) superflues à l’aide de la gomme (icône Gomme, dans le groupe Dessiner de l’onglet DISPOSITION du ruban).

Lorsque le tableau a l’aspect recherché, il ne vous reste plus qu’à le compléter en y entrant des données.