Médiaforma

Java – Popup menu

Print Friendly

Vous allez partir du projet précédent (Dessin à main levée) et permettre à l’utilisateur de choisir la couleur de tracé en cliquant du bouton droit dans l’application :

 

 

Ajoutez un contrôle Popup Menu à l’application. Ajoutez deux contrôles Menu Item au Popup Menu. Renommez ces contrôles popupRouge et popupBleu :

 

 

Pour que le menu popup apparaisse lorsque l’utilisateur clique du bouton droit sur l’application, vous devez implémenter l’événement mousePressed(). Cet événement sert déjà à effectuer le tracé à main levée. Nous allons y ajouter quelques instructions pour différentier le clic sur le bouton droit du clic sur le bouton gauche :

private void formMousePressed(java.awt.event.MouseEvent evt) {
    if (evt.getButton() == MouseEvent.BUTTON1)  {
        pointX1 = evt.getX();
        pointX2 = evt.getX();
        pointY1 = evt.getY();
        pointY2 = evt.getY();
        sourisClic = true;
        repaint();
    }
    if (evt.getButton() == MouseEvent.BUTTON3)
        jPopupMenu1.show(this, evt.getX(), evt.getY());
}

La méthode getButton() permet de savoir quel bouton a été pressé. Il suffit de comparer la valeur retournée aux constantes mouseEvent.BUTTON1 (bouton gauche) et MouseEvent.BUTTON3 (bouton droit) et d’effectuer le traitement correspondant. Ici, le tracé est effectué lorsque le bouton gauche est enfoncé et le menu popup est affiché (jPopupMenu1.show()) lorsque le bouton droit est enfoncé.

Il ne reste plus qu’à affecter un peu de code aux deux commandes du menu popup pour lui donner vie :

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

No comments yet.

Leave a Reply