Médiaforma

Java – Barres d’outils

Print Friendly

Cette section va vous montrer comment :

  • Créer une barre d’outils et une barre d’état pour, respectivement, faciliter l’exécution de commandes et afficher des informations sur l’état de l’application.
  • Utiliser les commandes graphiques de Java : tracé de points, de traits, d’ovales, de rectangles,
  • Gérer les événements liés à la souris : déplacement, enfoncement d’un bouton, relâchement d’un bouton.

Définition de la barre d’outils

A l’aide de Paint ou d’une autre application graphique quelconque, définissez quatre images de 50×50 pixels représentant un crayon, une ligne droite, un rectangle plein de couleur rouge et une ellipse pleins de couleur rouge et sauvegardez-les sous le nom ico1.jpg à ico4.jpg.

 

 

Définissez un nouveau projet de type Java Application sans classe main() et ajoutez-lui une jFrame Form.

Vous allez maintenant créer la barre d’outils de l’application. En mode Design, ajoutez un contrôle Tool Bar (sous Swing Containers) au projet et quatre Button dans le contrôle Tool Bar. Renommez ces boutons crayon, trait, rectangle et ellipse. En utilisant le volet des propriétés, affectez les quatre icônes à la propriété icon des quatre boutons.

Pour en terminer avec la conception graphique de l’application, insérez un deuxième contrôle Tool Bar dans la partie inférieure de l’application, et deux contrôles Label dans ce contrôle Tool Bar.

La fenêtre de l’application doit maintenant ressembler à ceci :

 

 

Commencez par définir quelques variables dont nous aurons besoin dans le code :

int outilEnCours;
Boolean trace;
int x1, y1, x2, y2;
java.awt.Color couleur;

Cliquez tour à tour du bouton droit sur chacun des boutons de la première barre d’outils, pointez Events, Action, puis cliquez sur actionPerformed et complétez les méthodes crayonActionPerformed(), traitActionPerformed(), rectangleActionPerformed() et ellipseActionPerformed() comme ceci :

private void crayonActionPerformed(java.awt.event.ActionEvent evt) {
  outilEnCours = 1;
  status.setText("Outil Crayon actif");
}

private void traitActionPerformed(java.awt.event.ActionEvent evt) {
  outilEnCours = 2;
  status.setText("Outil Trait actif");
}

private void rectangleActionPerformed(java.awt.event.ActionEvent evt) {
  outilEnCours = 3;
  status.setText("Outil Rectangle actif");
}

private void ellipseActionPerformed(java.awt.event.ActionEvent evt) {
  outilEnCours = 4;
  status.setText("Outil Ellipse actif");
}

Ces méthodes se contentent de mémoriser l’outil sélectionné par l’utilisateur dans la variable outilEnCours et d’afficher un court texte dans le premier label de la deuxième barre d’outils.

Vous allez maintenant définir la méthode formWindowOpened() pour initialiser le programme à son ouverture :

private void formWindowOpened(java.awt.event.WindowEvent evt) {
    status.setText("Outil Crayon actif");
    outilEnCours = 1;
    couleur = java.awt.Color.BLUE;
}

Définissez les méthodes formMousePressed(), formMouseReleased(), formMouseMoved() et formMouseDragged() pour gérer les actions à la souris.

La méthode formMousePressed() mémorise les coordonnées de la souris dans les variables x1, y1, x2 et y2 :

private void formMousePressed(java.awt.event.MouseEvent evt) {
    trace = true;
    x1 = evt.getX();
    y1 = evt.getY();
    x2 = x1;
    y2 = y1;

}

La méthode formMouseReleased() mémorise les coordonnées de la souris dans les variables x2 et y2 lorsque l’outil Trait, Rectangle ou Ellipse est sélectionné et demande le rafraîchissement de la fenêtre :

private void formMouseReleased(java.awt.event.MouseEvent evt) {
    trace = false;
    switch (outilEnCours){
        case 2: x2 = evt.getX(); y2 = evt.getY(); repaint(); break;
        case 3: x2 = evt.getX(); y2 = evt.getY(); repaint(); break;
        case 4: x2 = evt.getX(); y2 = evt.getY(); repaint(); break;
    }
}

La méthode formMouseMoved() affiche les coordonnées de la souris dans le deuxième label de la deuxième barre d’outils :

private void formMouseMoved(java.awt.event.MouseEvent evt) {
    status2.setText(" "+evt.getX()+", "+evt.getY());
}

Enfin, la méthode formMouseDragged() gère l’outil Crayon et provoque le tracé à main levée. Pour cela, elle mémorise les coordonnées de la souris et demande le rafraîchissement de la fenêtre :

private void formMouseDragged(java.awt.event.MouseEvent evt) {
    status2.setText(" "+evt.getX()+", "+evt.getY());
    if (trace)
      if (outilEnCours == 1) {
              x1 = x2;
              y1 = y2;
              x2 = evt.getX();
              y2 = evt.getY();
              repaint();
      }
}

La méthode paint() est responsable du tracé, en fonction de l’outil utilisé. Elle rafraîchit également les deux barres d’outils pour éviter qu’elles ne soient effacées :

public void paint(Graphics g) {
  switch (outilEnCours) {
      case 1: g.setColor(couleur); g.drawLine(x1, y1, x2, y2); break;
      case 2: g.setColor(couleur); g.drawLine(x1, y1, x2, y2); break;
      case 3: g.setColor(java.awt.Color.RED); g.fillRect(x1, y1, x2-x1, y2-y1); break;
      case 4: g.setColor(java.awt.Color.BLUE); g.fillOval(x1, y1, x2-x1, y2-y1); break;
  }
  jToolBar1.repaint();
  jToolBar2.repaint();
}
Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply