Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1740 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Dessiner une ligne???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Dessiner une ligne???

n°246112
korben
Posté le 15-11-2002 à 17:15:54  profilanswer
 

La question peut paraître débile, mais comment on fait pour insérer une ligne sur un layout. Autrement dit, qqch du style
 
Line myligne = new Line(x1,y1,x2,y2)
myligne.add()
 
Parce que là, cela me semble être une vrai merde...
Merci
 
P.S:


Message édité par korben le 15-11-2002 à 17:26:42
mood
Publicité
Posté le 15-11-2002 à 17:15:54  profilanswer
 

n°246137
gfive
Posté le 15-11-2002 à 17:32:02  profilanswer
 

Bon, visiblement, t'as pas tout compris à la prog. graphique en Java :
 
Un Layout set a gérer la position d'objets, de type Component.
 
Une ligne, c'est pas un Component...A la limite, tu peux dessiner un ligne SUR un component...Ou plus exactement, sur le contexte graphique d'un Component....
 
Donc, si tu as un Component c, et que tu veux dessiner une ligne "dessus", tu fais :
 

Code :
  1. Graphics g = c.getGraphics();
  2. c.setColor(la_couleur)
  3. c.drawLine(x1,y1,x2,y2);

 
 
Mais ATTENTION!! : si ton composant est rafraichit par le système d'affichage, ou si les éléments qu'il contient sont dessinés APRES ta ligne, ou si un élément contenu dans ton composant est rafraichit, ta ligne risque de disparaître....Donc, il faut pas appeller ça n'importe où!!
 
Lis les javadoc des classes de java.awt (java.awt.Component, java.awt.Graphics, etc...)

n°246173
korben
Posté le 15-11-2002 à 18:01:43  profilanswer
 

Oui, j'avais compris pour les Component. Mais je voulais savoir s'il y a avait pas des classes qui simplifiait justement tout cela en faisant comme si on pouvait ajouter des lignes sur un layout.
Par contre, merci pour les conseils concernant le rafraichissement.
Je pose la question car à l'époque, Symantec (visual café), fournissait justement des classes faisant cela.
Merci

n°247134
korben
Posté le 17-11-2002 à 19:04:02  profilanswer
 

Up

n°247380
gfive
Posté le 18-11-2002 à 08:51:32  profilanswer
 

Ben non, y'a pas de méthode de "simplification" qui fasse ça, et heureusement, parce que ce serait un sacré bordel!

n°247390
korben
Posté le 18-11-2002 à 09:04:34  profilanswer
 

gfive a écrit a écrit :

Ben non, y'a pas de méthode de "simplification" qui fasse ça, et heureusement, parce que ce serait un sacré bordel!  




Euh... pourquoi? C'est quand même assez pratique de pouvoir mettre une ligne directement sur un layout, comme un panel par exemple.

n°247408
gfive
Posté le 18-11-2002 à 09:51:33  profilanswer
 

Mais....Sur un panel, tu peux dessiner une ligne!!!!

n°247427
korben
Posté le 18-11-2002 à 10:17:31  profilanswer
 

oui, donc il faut que j'insère un panel puis une ligne. Mais ok
Si vous avez une méthode hyper efficace, envoyez moi un exemple.
A+

n°247434
gfive
Posté le 18-11-2002 à 10:23:06  profilanswer
 

....Mais réfléchit, un moment!!  
Imagine que ton interface est dans une fenêtre (java.awt.Window), tu peux tout à fait dessiner une ligne sur la fenêtre!!! C'est un composant graphique comme les autres!! Ce que je te dis, c'esr que tu peux pas faire ça avec une méthode de la classe LayoutManager, et c'est tout à fait normal, puisque cette classe est responsable du PLACEMENT des composants!! Une ligne indépendante, le layout ne doit même pas savoir qu'elle est là, puisque justement, on veut qu'elle échappe à son contrôle...
 
Donc, la méthode que je t'aie donnée marchera, si tu l'applique sur le bon composant, pour mettre un ligne sur ce que rtu veux.

n°247467
BifaceMcLe​OD
The HighGlandeur
Posté le 18-11-2002 à 11:03:52  profilanswer
 

gfive, ne t'énerve pas, voyons.  :D  
 
Je crois que je comprends ce que veux notre forumeur. Il voudrait avoir une ligne comme si elle était un composant. Après tout, pourquoi pas ? Certains utilisent des cadres (avec ombrage et tout et tout) comme des composants.
 
Dans ce cas, korben, tu dois écrire une classe "Line" qui hérite de "Component" et qui redéfinit toutes les méthodes qui vont bien, notamment paint(), getPreferredSize(), getMinimumSize().
Ensuite, tu pourras ajouter une instance de cette classe "Line" à un panel comme s'il s'agissait d'un composant comme un autre, et le layout du panel s'occupera tout seul du déplacement/redimensionnement de cette ligne.


Message édité par BifaceMcLeOD le 18-11-2002 à 11:05:10
mood
Publicité
Posté le 18-11-2002 à 11:03:52  profilanswer
 

n°247501
korben
Posté le 18-11-2002 à 11:52:47  profilanswer
 

Merci. La réponse est clair.
Je ne cherchais pas à vous emmerder. Symantec fournissait à l'époque des classes permettant de placer une ligne très facilement (comme déjà décrit plus haut) et je voulais savoir si cela existait aussi chez Java. Apparemment non, pour des raisons que vous m'avez données.
Merci
A+

n°247588
gfive
Posté le 18-11-2002 à 13:39:43  profilanswer
 

bah, y'a pas que ça, comme raison : quand tu utilises des packages externes, comme ça, ça pose d'autres problèmes au moment de la distribution de ton soft : t'es obligé de distribuer le pakage externe avec, il peut y avoir des problèmes de licence, etc...donc, plus généralement, j'ai tendance à ne pas utiliser ce genre de trucs.. ,)

n°247825
korben
Posté le 18-11-2002 à 17:39:42  profilanswer
 

C'est bien pour cela que je réecris le code. Pour ne plus avoir à utiliser cette classe symantec :-)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] Dessiner une ligne???

 

Sujets relatifs
[Java]Multi Thread Conseil !![Java] Ecriture/Lecture fichier.[RESOLU]
Communauté HFR: projet commun: Le site est en lignecherche applet java ...
[java] compilation javacListe Chainée en java | Gérer le resize [Resolu]
résultat d'une requête sur une même ligne en SQL ServerChat en java, PB socket sur wanadoo ?
java-nombre de lignes d un fichier texte[C++ & Java] Quel programme simple et efficace pour développer ?
Plus de sujets relatifs à : [Java] Dessiner une ligne???


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR