Après créer l'interface graphique de base et moteur d'animation, introduire les rudiments de l'interaction en incorporant modèle d'événement de souris.
La technique consiste à générer un événement ou se passe chaque fois que vous interagissez avec la souris. Cet événement sera capturé par l'un de nos modules logiciels, traiter et générer une action.
La première étape sera de comprendre comment générer ces événements et, plus tard, intégrer des mesures plus élaborées. Pour l'instant, il suffit de déterminer le type d'événement qui se produit et la position sur l'écran où vous avez fait.
Le programmation événementielle es un paradigme de programmation dans lequel à la fois la structure et l'exécution des programmes sont déterminés par les événements qui se produisent dans le système, défini par l'utilisateur ou qu'ils causent.
Pour comprendre la programmation événementielle, nous nous opposons à ce qui n'est pas: tandis que la programmation séquentielle (ou structurée) est le programmeur qui définit ce que sera le déroulement du programme, dans la programmation événementielle est l'utilisateur ou ce que vous exploitez le programme, qui dirige le flux du programme. Bien que la programmation séquentielle peut être le programme d'intervention de l'agent externe, ces interventions se produisent lorsque le programmeur a déterminé, et à aucun moment, comme dans le cas de la programmation événementielle.(W)
Implémenter l'interface écouteur d'événements
Nous mettrons en œuvre le système d'événements dans une seule classe de la bibliothèque graphique pour éviter de compliquer le modèle initialement. La première chose que nous allons faire est de changer la déclaration de la classe responsable du maintien de la base de données et d'objets graphiques de peinture: “Blackboard”. Indiquer étiqueté “met en œuvre” que cette classe est en mesure d'écouter la souris.
public class Tableau noir s'étend Toile met en œuvre MouseListener{
La nouvelle interface nous oblige à ajouter un nouveau bibliothèques Java d'appel pour localiser les fichiers qui implémentent cette interface. Ce que nous faisons avec le mot réservé “importer”.
importer java.awt.event.MouseListener;
Devront mettre en œuvre les méthodes définies dans l'interface, et importer la classe “MouseEvent” passé en paramètre à ces méthodes. Pour l'instant simplement déclarer sans ajout de fonctionnalités.
public void mouseClicked(MouseEvent arg0) { // TODO méthode généré automatiquement stub } public void mouseEntered(MouseEvent arg0) { // TODO méthode généré automatiquement stub } public void mouseExited(MouseEvent arg0) { // TODO méthode généré automatiquement stub } public void mousePressed(MouseEvent arg0) { // TODO méthode généré automatiquement stub } public void mouseReleased(MouseEvent arg0) { // TODO méthode généré automatiquement stub }
Inscription à l'événement
Va enregistrer un événement de souris se produit chaque fois. Dans le constructeur de la classe ou dans une méthode de démarrage se joindra à l'appel “addMouseListener” pour indiquer que nous voulons ajouter l'auditeur.
Le paramètre passé est le nom de la classe à l'écoute de la souris. Dans notre cas, il indiquera la même catégorie que cet événement est enregistré pour être alerté lorsqu'il ya. Cela se fait avec l'étiquette “cette“.
publique Tableau noir(){ cette.addMouseListener(cette); }
Gestion d'événements
Définir quelques variables qui va stocker les coordonnées de la position de l'écran où la souris a été enfoncé
int privé LastX = 0; int privé lasty = 0;
Mettre en œuvre l'une des fonctions ci-dessus, par exemple qui fonctionne à chaque fois que vous avez appuyé sur le bouton de la souris “mouseClicked”. Pour l'instant seulement enregistrer les coordonnées où vous avez appuyé, même si nous aurions compliqué le programme avec des fonctionnalités supplémentaires.
Ces coordonnées sont l'objet ou l'événement qui a été transmis à la fonction, objet “MouseEvent”
public void mouseClicked(MouseEvent arg0) { LastX = arg0.getX(); lasty = arg0.getX(); }
Modifiez la méthode chargée de dessiner des graphiques sur l'écran de peindre quelque chose sur l'endroit où la souris a été enfoncé. Il s'agit de la mise en œuvre simple nous permet de vérifier graphiquement que nous avons capturé et traité l'événement de la souris.
public void paintOffScreen(Graphics g){ Enumeration enum = bd.elements(); Objet ob; pendant que(Enum.hasMoreElements()){ OB = enum.nextElement(); si(ob instanceof SimpleDrawable){ ((SimpleDrawable) OB).peindre(g); } } paintMousePosition(g); }
Responsable de cette fonction est “paintMousePosition”, dont la mise en oeuvre est d'écrire graphiquement les coordonnées stockées de la position de la souris, par la fonction “drawString”.
private void paintMousePosition(Graphics g) { g.drawString("("+LastX ","+lasty ")", LastX, lasty); }
Doit être lié poster un commentaire.