Ecouter un objet quelconque
Résolu
arthurg95
Messages postés
2421
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 juin 2014
-
Modifié par arthurg95 le 9/05/2013 à 15:20
arthurg95 Messages postés 2421 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 4 juin 2014 - 9 mai 2013 à 20:54
arthurg95 Messages postés 2421 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 4 juin 2014 - 9 mai 2013 à 20:54
A voir également:
- Ecouter un objet quelconque
- Vente entre particulier objet - Guide
- Ecouter un vocal whatsapp sans ouvrir - Accueil - Messagerie instantanée
- Ecouter youtube arriere plan - Guide
- Identifier un objet à partir d'une photo - Guide
- Objet interdit en cabine ryanair - Guide
1 réponse
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
9 mai 2013 à 15:53
9 mai 2013 à 15:53
Je vois plusieurs manières de faire, en voici deux :
1) Tu stockes chaque point de tes polygones dans une Collection que tu relis à chaque fois pour faire tes drawPolygon dans ton paint(), et lorsque tu as ton mouseListener sur ton JPanel, tu te sers de l'ActionEvent pour déterminer quel point de ta Collection tu as appuyé, puis te le modifies directement dans la Collection en fonction de son déplacement, ce qui entrainera aussi la modification du polygone dessiné.
2) Pour chaque point de ton polygone tu créées un Component (tout petit, juste la taille de ton cercle) que tu ajoutes à ton JPanel, c'est alors sur ces petits objets qu'il faudra ajouter des MouseListener, ils détecteront tout seul que c'est sur eux que tu appuies, et tu les déplaceras également en utilsant l'ActionEvent. Concernant tes drawPolygon il suffira alors de regarder ce que contient le JPanel pour tous les retrouver et les relier les uns aux autres.
1) Tu stockes chaque point de tes polygones dans une Collection que tu relis à chaque fois pour faire tes drawPolygon dans ton paint(), et lorsque tu as ton mouseListener sur ton JPanel, tu te sers de l'ActionEvent pour déterminer quel point de ta Collection tu as appuyé, puis te le modifies directement dans la Collection en fonction de son déplacement, ce qui entrainera aussi la modification du polygone dessiné.
2) Pour chaque point de ton polygone tu créées un Component (tout petit, juste la taille de ton cercle) que tu ajoutes à ton JPanel, c'est alors sur ces petits objets qu'il faudra ajouter des MouseListener, ils détecteront tout seul que c'est sur eux que tu appuies, et tu les déplaceras également en utilsant l'ActionEvent. Concernant tes drawPolygon il suffira alors de regarder ce que contient le JPanel pour tous les retrouver et les relier les uns aux autres.
Modifié par arthurg95 le 9/05/2013 à 16:56
Je préfère la seconde proposition je pense !
Puis-je simplement extends mes points en JComponent implements ActionListener?
Et si je fais comme ceci, dans le JPanel : addActionListener(le point) c'est ça ?
9 mai 2013 à 19:23
Exemple (il y a un petit bug avec le déplacement du point, mais si je retrouve comment faire je te le dirais)
9 mai 2013 à 20:54
1
2
3
4
5
6
7
8
9
10
11
12
public class Points extends JPanel {
int x,y;
public Points(int x,int y,JPanel panel) {
this.x = x;
this.y = y;
addMouseMotionListener(panel);
setBackground(Color.black);
setBounds(x-2,y-2,5,5);//en supposant que ton point face 5 sur 5
}
}
ensuite dans panel qui devra donc implementer MouseMotionListener tu utilises mouseDragged() pour bouger tes points
Code :Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
public void mouseMoved(MouseEvent e) {
}
public void mouseDragged(MouseEvent e) {
Points p = (Points)e.getSource();
p.setLocation(e.getX(),e.getY());
//pas besoin de repaint car setLocation induit automatiquement un repaint
}