Bonjour,
Je dessine actuellement une interface graphique en utilisant les bibliothèques java AWT/SWING. Cette interface comporte entre autre un Canvas3D pour afficher du java3D.
J'ai créé une classe qui étend le Canvas3D et qui implémente l'interface ComponentListener. Cette interface est sensée permettre la gestion des evenements suivants :
componentHidden
ComponentMove
ComponentResized (celui qui m'interesse)
ComponentShown
Voici le code de la classe en question, peut etre que cela pourra vous aider :
Code :
- class DrawArea extends Canvas3D implements ComponentListener
- {
- public DrawArea ()
- {
- super (SimpleUniverse.getPreferredConfiguration());
- addComponentListener (this);
- }
- public void componentHidden(ComponentEvent e)
- {}
- public void componentMoved(ComponentEvent e)
- {}
- public void componentResized(ComponentEvent e)
- {
- // Affiche la taille du Canvas3D
- System.out.println ("S - height = "+getHeight());
- System.out.println ("S - width = "+getWidth());
- }
- public void componentShown(ComponentEvent e)
- {}
- }
|
Le problème est le suivant :
Lorsque la fenetre principale est agrandie, le Canvas3D s'agrandi également, la fonction "ComponentResized" est bien appelée. Cependant, lorsqu'ensuite la taille de la fenetre est diminuée, le Canvas ne l'est pas et la fonction "ComponentResized" n'est pas appelée. Pourquoi ?