Bonjour,
Je scanne l'application pour déterminer les objets présents. Lorsque j'obtiens la liste de ces composants (par exemple un bouton), est-il possible de surcharger les méthodes de ce composant, par exemple paintComponent() ?
Bonjour,
Je scanne l'application pour déterminer les objets présents. Lorsque j'obtiens la liste de ces composants (par exemple un bouton), est-il possible de surcharger les méthodes de ce composant, par exemple paintComponent() ?
Au runtime ?
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Non, ce n'est pas possible.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Il faudrait :
1. sauver les données de l'objet à modifier dans une structure adaptée,
2. décharger le code de l'objet à modifier (La JVM ne le permet pas),
3. modifier le source,
4. le compiler,
5. instancier un nouvel objet avec ce code,
6. copier les données de l'ancien objet vers le nouveau,
7. recharger l'objet pour le même pointeur (la JVM ne le permet pas, on n'a pas accès aux pointeurs).
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Ou alors il faudrait tapper sur du violent avec un poil d'injection de bytecode au runtime, mais bon pas sur que ça marche non plus...
Par contre tu pourrais plutôt prévoir un mécanisme basé sur un pattern de type delegate ou strategie avec un objet contenant une méthode effectuant les instructions de dessin nécessaires, méthode qui serait appelée dans le paintComponent. Il suffirait alors que changer d'avoir plusieurs implémentations de la classe mère correspondant à ton objet delegate et d'en switcher selon le contexte.
Enfin bref tout dépend de ce que tu cherches à faire.
Mais bon par contre pour celà il faut faire un peu de conception en amont![]()
Partager