[Swing] Déplacement de JButton
Résolu/Fermé
Manoa1
Messages postés
8
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 juillet 2012
-
Modifié par Chris 94 le 7/07/2012 à 15:52
Manoa1 Messages postés 8 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 14 juillet 2012 - 14 juil. 2012 à 08:40
Manoa1 Messages postés 8 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 14 juillet 2012 - 14 juil. 2012 à 08:40
A voir également:
- [Swing] Déplacement de JButton
- Historique déplacement google - Guide
- Deplacer barre de tache windows 11 - Guide
- Excel fleche de déplacement ne fonctionne plus ✓ - Forum Excel
- Impossible de deplacer l'image vers la corbeille - Forum Téléphones & tablettes Android
- Vous ne pouvez pas déplacer des objets en dehors de la feuille ✓ - Forum Excel
4 réponses
KX
Messages postés
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
7 juil. 2012 à 15:02
7 juil. 2012 à 15:02
Ton code est mal fait, les objets sont mis à l'arrachée dans l'interface graphique en espérant que ça passe, alors vu que j'ai déjà travaillé à plusieurs reprises sur ton code, j'arrive à m'y retrouver, mais un oeil neuf sera totalement perdu.
Il faut que tu repenses totalement ton code, et au minimum que tu créés une classe pour les boutons qui se déplacent... parce que tes tableaux dupliquent inutilement des informations que l'on peut obtenir directement par les boutons.
Sinon, L'actionPerformed de DModifPole modifie le tableau mais ça ne suffit pas car il fait surtout penser à déplacer le bouton, ce que tu ne fais pas !
Vu ton code actuel, tu dois faire un lien dans ton menu avec l'interface existante, par exemple en passant en paramètre l'objet Panneau :
final Panneau panneau = new Panneau();
Dans Fenetre :
Dans DModifPole (qui n'implémente plus ActionListener)
Remarque : Ton programme rame énormément à cause d'une boucle infinie dans Panneau. Le paintComponent appelle repaint(), qui lui même appelle paintComponent. Conséquence : le quadrillage est constamment en train de se redessiner.
Supprimes donc l'instruction repaint() dans le paintComponent, elle ne sert à rien, et ça évitera au processeur de tourner à fond...
Il faut que tu repenses totalement ton code, et au minimum que tu créés une classe pour les boutons qui se déplacent... parce que tes tableaux dupliquent inutilement des informations que l'on peut obtenir directement par les boutons.
Sinon, L'actionPerformed de DModifPole modifie le tableau mais ça ne suffit pas car il fait surtout penser à déplacer le bouton, ce que tu ne fais pas !
Vu ton code actuel, tu dois faire un lien dans ton menu avec l'interface existante, par exemple en passant en paramètre l'objet Panneau :
final Panneau panneau = new Panneau();
Dans Fenetre :
ModifPole.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { new DModifPole(Fenetre.this, "Modification d'un pôle", true, panneau); } }); this.setContentPane(panneau);
Dans DModifPole (qui n'implémente plus ActionListener)
public DModifPole(Fenetre parent, String title, boolean modal, final Panneau panneau) { ... BModifPole.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Panneau.PoleR[1]=Integer.valueOf(TX.getText()); Panneau.PoleI[1]=Integer.valueOf(TY.getText()); panneau.Pole1.setLocation(Panneau.PoleR[1],Panneau.PoleI[1]); DModifPole.this.dispose(); } }); ... }
Remarque : Ton programme rame énormément à cause d'une boucle infinie dans Panneau. Le paintComponent appelle repaint(), qui lui même appelle paintComponent. Conséquence : le quadrillage est constamment en train de se redessiner.
Supprimes donc l'instruction repaint() dans le paintComponent, elle ne sert à rien, et ça évitera au processeur de tourner à fond...
Manoa1
Messages postés
8
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 juillet 2012
7 juil. 2012 à 19:32
7 juil. 2012 à 19:32
merci infiniment! tu m'as sauvé une nouvezlle fois! que ferais-je sans toi! merci!
Manoa1
Messages postés
8
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 juillet 2012
9 juil. 2012 à 18:43
9 juil. 2012 à 18:43
j'ai essayé ce que vous m'avez suggéré est il y a encore une erreur sur la classe DMODIFPOLE:
panneau.Pole1.setLocation(Panneau.PoleR[1],Panneau.PoleI[1]);
dans cette instruction, eclipse indique toujours une erreur alors que j'ai suivi a la lettre votre suggestion! j'aimerais que vous jette un coup d'oeil a ce problème! merci d'avance!
panneau.Pole1.setLocation(Panneau.PoleR[1],Panneau.PoleI[1]);
dans cette instruction, eclipse indique toujours une erreur alors que j'ai suivi a la lettre votre suggestion! j'aimerais que vous jette un coup d'oeil a ce problème! merci d'avance!
KX
Messages postés
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
9 juil. 2012 à 18:58
9 juil. 2012 à 18:58
"il y a encore une erreur sur la classe" : LAQUELLE ???
À chaque fois que tu as un message d'erreur donne le... parce que moi avec les modifications que j'ai décrite hier, je n'en ai aucune, alors comment je la devine ?
À chaque fois que tu as un message d'erreur donne le... parce que moi avec les modifications que j'ai décrite hier, je n'en ai aucune, alors comment je la devine ?
Manoa1
Messages postés
8
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 juillet 2012
10 juil. 2012 à 08:35
10 juil. 2012 à 08:35
sur la classe "DModifPole" sur la ligne"panneau.Pole1.setLocation(Panneau.PoleR[1],Panneau.PoleI[1]);"
KX
Messages postés
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
10 juil. 2012 à 11:08
10 juil. 2012 à 11:08
Et est-ce que je suis vraiment obligé de jouer aux devinettes pour savoir de quelle erreur il s'agit ?
Au hasard : n'aurais-tu pas oublier de déclarer l'objet panneau comme je l'avais indiqué ?
Au hasard : n'aurais-tu pas oublier de déclarer l'objet panneau comme je l'avais indiqué ?
final Panneau panneau = new Panneau();
Manoa1
Messages postés
8
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 juillet 2012
10 juil. 2012 à 17:45
10 juil. 2012 à 17:45
mais non! je l'ai déjà inséré! je vais le revoir ce soire et si le problème persiste je vais te l'envoyé demain matin! merci!
Manoa1
Messages postés
8
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 juillet 2012
14 juil. 2012 à 08:40
14 juil. 2012 à 08:40
je te remercie! le probleme est ien resolue! merci infiniment