Vous savez faire ca avec un JDesktopPane ??

Vous savez faire ca avec un JDesktopPane ?? - Java - Programmation

Marsh Posté le 26-05-2002 à 01:10:39    

voila le probleme
j ai des JInternalFrames ds un JDesktopPane j aimerai les relier par des lignes.
Pour etre precis: les JInternalFrames ne contiennent que des JList et j aimerai relié certain element des ces listes entre eux(qui sont ds 2 JInternalFrames differentes si vous aviez bien suivis)
voila
toute aide est la bienvenue
 
 :hello:

Reply

Marsh Posté le 26-05-2002 à 01:10:39   

Reply

Marsh Posté le 26-05-2002 à 01:19:08    

une images pour simplifier:
 
http://very.free.free.fr/forum/forum.jpg
 
la ca  a été fait avec paint mais les traits j aimerait les faire grace a du drag and drop par exemple
 
voila

 

[jfdsdjhfuetppo]--Message édité par veryfree le 26-05-2002 à 01:23:17--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 26-05-2002 à 01:21:32    

Je sais pas trop si c'est faisable simplement, alors on va directement voir la solution chiante :
 
Faire une sous classe de JDesktopPane et redéfinir la méthode paint(), ca devrait le permettre.
 
Maintenant, je pense que y'a plus simple (vaudrait mieux), mais je m'en suis jamais vraiment servi, donc j'en sais trop rien.

Reply

Marsh Posté le 26-05-2002 à 01:24:27    

lorill a écrit a écrit :

Je sais pas trop si c'est faisable simplement, alors on va directement voir la solution chiante :
 
Faire une sous classe de JDesktopPane et redéfinir la méthode paint(), ca devrait le permettre.
 
Maintenant, je pense que y'a plus simple (vaudrait mieux), mais je m'en suis jamais vraiment servi, donc j'en sais trop rien.  




 
j avait pensé a redefinir paint mais ca va un peu foutre la merde des que l on deplace les frames :/

Reply

Marsh Posté le 26-05-2002 à 14:52:56    

ben si tu fais un super.paint() et que ensuite tu dessines tes lignes ca devrait aller je pense ...

Reply

Marsh Posté le 26-05-2002 à 15:48:42    

benou a écrit a écrit :

ben si tu fais un super.paint() et que ensuite tu dessines tes lignes ca devrait aller je pense ...  



.
 
 
tu peux etre plus precis je comprend po trop comment faire  :(

Reply

Marsh Posté le 26-05-2002 à 17:37:45    

bon, je sais ps si ca va marcher mais ca me parait possible :  
 
tu créés un objet qui hérite de JDesktopPane, sur cet objet tu redéfinis la méthode paint.  
Dans cette méthode, en premier tu fais super.paint() de façon à ce que j'affichage géré par le JDesktopPane soit fait, et ensuite tu ajoutes tes affichages à toi : les tracés des trais.
 
voilà. Ca me paraît quand même assez balaise !

Reply

Marsh Posté le 26-05-2002 à 17:54:21    

benou a écrit a écrit :

bon, je sais ps si ca va marcher mais ca me parait possible :  
 
tu créés un objet qui hérite de JDesktopPane, sur cet objet tu redéfinis la méthode paint.  
Dans cette méthode, en premier tu fais super.paint() de façon à ce que j'affichage géré par le JDesktopPane soit fait, et ensuite tu ajoutes tes affichages à toi : les tracés des trais.
 
voilà. Ca me paraît quand même assez balaise !  




 
Je suis meme pas sur que ca soit si dur : le probleme va etre de connaitre les coordonnes de tes JInternalFrame pour faire les traits ou il faut. Mais sinon, tu recupere un objet Graphics sur ton DesktopPane, et je crois me souvenir que cet objet possede une methode drawLine (à verifier).


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 26-05-2002 à 18:46:26    

veryfree a écrit a écrit :

mais la methode drawLine() ne marche pas car Graphics g=getGraphics(); renvois null
chai plus quoi faire la  
 
 




 
Tu es sur que ton composant est effectivement affiche à l'ecran lorsque tu appelles cette methode ? Par exemple lors de la construction, le composant n'a pas encore de contexte graphique donc c normal. Sinon essaie de regardr du cote des methodes update() et repaint(), je sais qu'on peut s'en sortir avec ca (desole mais ca fait longtemps que je sius plus la dedans)


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 26-05-2002 à 19:14:24    

R3g a écrit a écrit :

 
 
Tu es sur que ton composant est effectivement affiche à l'ecran lorsque tu appelles cette methode ? Par exemple lors de la construction, le composant n'a pas encore de contexte graphique donc c normal. Sinon essaie de regardr du cote des methodes update() et repaint(), je sais qu'on peut s'en sortir avec ca (desole mais ca fait longtemps que je sius plus la dedans)  




 
c bon c resolu merci

Reply

Marsh Posté le 26-05-2002 à 19:14:24   

Reply

Marsh Posté le 26-05-2002 à 19:44:34    

veryfree a écrit a écrit :

 
 
c bon c resolu merci  




 
enfin une partie seulement
je fait une pose pq jvai devenir fou sinon
 
jcroi que je vai laisser tomber ces histoires de lignes pq c vraiment complexe de recupérer les coordonnées des frames et de redessinner en cas de deplacement de ces dernieres...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed