Bonjour à tous, je viens ici pour une question d'optimisation. En effet mon code fonctionne mais d'une manière qui ne me plait pas et je pense qu'il y a bien moyen d'optimiser cela, mais je ne trouve pas. Voila mon problème :
Dans mon programme, j'ai un JPanel qui contient un objet d'une de mes classe. Cette classe hérite de MouseListener et MouseMotionListener, il contient donc toutes les méthodes associés en particulier PaintComponent. Les objets de cette classe me permettent ( entre autre ) de tracer des graphes éditable à la souris ( on peut déplacer les sommets, cliquer dessus pour effectuer des actions, ect ...).
J'ai récemment voulu implémenter une fonction permettant de zoomer / dezoomer la vue des graphes. Pour cela j'ai donc créé un attribut "scale" j'ai donc dans la fonction PaintComponent(Graphics g ) :
Cela fonctionne donc bien pour l'affichage, mais pour qu'ensuite mes action à la souris soit bien interprété il a fallu que je remplace tout les
Code : Sélectionner tout - Visualiser dans une fenêtre à part g2.scale(scale, scale);
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part me.getX()( idem pour Y, me etant un objet de type MouseEvent ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part me.getX() / scale
Comme je l'ai dit en intro, cela fonctionne mais ne me plait pas vraiment ... si quelqu'un a une idée pour optimiser cela, je suis preneur de toutes les pistes de recherche !
Sinon, si c'est le seul moyen, au niveau du temps d’exécution est il plus rapide de faire une division par 1 ou une comparaison avec 1 ( sachant que ce 1 ne sera pas codé en dur dans le code mais sera une variable) ? ( je n'ai jamais eu de cours de java, je ne sais pas vraiment comment il est compilé ensuite et les optimisation que fait le compilateur ).
Partager