2011-10-08 3 views
2

Je suis en train d'écrire un tiroir en zigzag pour mon travail scolaire. Fondamentalement, ce qui est attendu est de pouvoir dessiner des zigzags sur une toile, de pouvoir déplacer les sommets des zigzags et de pouvoir déplacer le zigzag entier. Nous pouvons également changer la couleur et l'épaisseur des zigzags.Dessin au trait éditable Java swing

Je pouvais réussir à dessiner des zigzags, un clic gauche commence et les clics gauches suivants continuent le zigzag, et un clic droit le termine. De cette façon, je peux dessiner plusieurs zigzags. Ce que je ne peux pas faire est comment je peux rendre les vertices des zigzags mobiles? Je garde les coordonnées du point dans une liste d'arithmétique de type mypoint qui est composée de valeurs de x, y et de profondeur. Je dessine toute la peinture sur une toile qui est une classe étendue de JPanel. Dans la méthode paintcomponent, j'appelle la méthode drawline pour chaque sommet de la liste. Comme ce ne sont que des peintures je ne peux pas comprendre comment je vais détecter que l'utilisateur clique sur le vertex. Puis-je avoir un petit bouton comme contrôleurs lorsque cliqué fera le travail que je veux. J'ai essayé d'utiliser des étiquettes et des boutons standard, mais je ne peux pas non plus les positionner de manière appropriée et ils ne sont pas trop grands pour être juste des gestionnaires pour les sommets.

Avez-vous des suggestions à faire?

Répondre

2

Vous pouvez avoir deux modes de fonctionnement, qui doivent être choisis par l'utilisateur en sélectionnant un bouton radio, par exemple: un pour dessiner des zigzags, et l'autre pour sélectionner des sommets.

Alors que le mode choisi est "zigzag", les clics de la souris permettent de dessiner des zigzags comme vous l'avez déjà implémenté. Lorsque le mode choisi est "sélection de vertex", un clic de souris pourrait trouver un sommet dont la distance au point cliqué est inférieure à 3 pixels, et le déplacement de la souris pourrait déplacer le sommet de sa position d'origine, en suivant le pointeur de la souris.

Vous pouvez informer l'utilisateur du sommet sélectionné en affichant un petit squere autour du sommet.