Bonjour, j'ai une interrogation sur la comparaison de références d'objets ou de propriétés d'objets.
Sur une fenêtre, j'ai un composant qui permet d'afficher et de positionner tout un lot de composants divers. Ce composant nommé "g1" est en fond gris sur l'image :
Je souhaite recalculer la position des différents éléments sur la grille, uniquement si cette dernière a été redimensionnée.
A l'entrée du "paintComponent" de mon composant support "g1", je teste si ce dernier a changé de dimension :
Si ce n'est pas le cas, je redessine directement tous mes objets contenus à leur place initiale.
Si c'est le cas, j'appelle la méthode "actualiser()" pour tout recalculer, et je redessine seulement ensuite.
J'ai trois variables pour faire ce test :
g1sizeX : integer largeur de mon composant g1 à la dernière actualisation.
g1SizeY : integer hauteur de mon composant g1 à la dernière actualisation.
g1Size : objet Dimension de mon composant g1.
Si je fais le test en vérifiant si largeur ou hauteur a changé, cela fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (this.getWidth() != g1SizeX || this.getHeight() != g1SizeY) { System.out.println("le test donne DIFFERENT et on appelle ACTUALISER()"); actualiser(); // redimensionner uniquement si la taille de la grille à changée }
Cependant si je veux faire le test en une fois, avec l'objet dimension, cela ne fonctionne pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // if (this.getSize() != g1Size) { // System.out.println("le test donne DIFFERENT et on appelle ACTUALISER()"); // actualiser(); // redimensionner uniquement si la taille de la grille à changée // }
Mes questions sont les suivantes :
1/ la comparaison d'objets, d'après ce que j'ai lu, compare en fait les pointeurs, et si c'est les mêmes, la comparaison est ok. Dans le cas, cela expliquerait que mon test dimension ne fonctionne pas.
Est-ce bien la raison??
2/ Puis-je tout de même faire une comparaison de dimension "en une fois", par une astuce que j'ignore, sans être bloqué par la comparaison de références d'objets??
Merci à tous si vous vous y connaissez...
Partager