faire un drawLine dans un Jpanel

faire un drawLine dans un Jpanel - Java - Programmation

Marsh Posté le 24-03-2003 à 21:21:36    

je veux juste faire une ligne dans un jPanel pourtant c pas sorcier mais j'y arrive pas !!!
 
alors voila le code
 

Code :
  1. import javax.swing.*
  2. import javax.awt.*
  3. //...//
  4. zoneSimuGraph = new JPanel();
  5. //dessiner la ligne  
  6.           Graphics g;
  7.          Graphics2D g2= (Graphics2D)g;
  8.          g2.draw(new Line2D.Double(20,20,50,50));
  9.       zoneSimuGraph.paintComponent(g2);
  10. //...//


 
c a peu pres ce qu'il y a sur le tutorial de chez sun ( applet shapesdemo.java)
 
 
le probleme c'est que a chaque fois ils font un paintComponent(Graphics g)
 
je vais qd meme pas faire une classe specifique pour ca!
 
je dois avouer que j'y comprends pas grand chose mais je ne demande qu'a comprendre alors si vous pouviez m'expliquer ca serait cool

Reply

Marsh Posté le 24-03-2003 à 21:21:36   

Reply

Marsh Posté le 25-03-2003 à 03:24:59    

explique un peu plus ce que tu veux faire exactement.
Tu veux un JPanel qui ai tj une ligne à un certain endroit?
Si oui, le plus simple est de faire:

Code :
  1. zoneSimuGraph = new JPanel(){
  2.      public void paint(Graphics g){
  3.         super.paint(g);
  4.         Graphics2D g2 = (Graphics2D)g;
  5.         g2.draw(new Line2D.Double(20,20,50,50));
  6.      }
  7. };


---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
Reply

Marsh Posté le 25-03-2003 à 07:48:31    

ok mais si je veux créer d'autres formes du style des rectangles dans un meme jPanel je dois tout mettre dans une meme methode paint()
 
comment on fait si jamais on a plusieurs jPanel dans ce cas?
 
a oui et aussi g une question : j'utilise sunOne studio pour faire mon interface grafik. le probleme c ke qd je fais un setVisible(true) sur une jFrame ca ne me met qu'un toute petite fenetre et je suis obligé de l'agrandir manuellement a chak fois  
 
j'ai essayé avec setSize( valeur, valeur) mais ca marche pas pourtant ca devrait

Reply

Marsh Posté le 25-03-2003 à 08:12:45    

ok j'avais pas vu les accolades c pour ca ke je comprenais rien
 
merci !!!

Reply

Marsh Posté le 25-03-2003 à 09:21:50    

[:recherche] y a moins d'un mois, on a repondu a a peu pres la meme question [:benou]


---------------
get amaroK plugin
Reply

Marsh Posté le 25-03-2003 à 16:36:58    

spitagor a écrit :


a oui et aussi g une question : j'utilise sunOne studio pour faire mon interface grafik. le probleme c ke qd je fais un setVisible(true) sur une jFrame ca ne me met qu'un toute petite fenetre et je suis obligé de l'agrandir manuellement a chak fois  
 
j'ai essayé avec setSize( valeur, valeur) mais ca marche pas pourtant ca devrait


bizarre, ca marche bien chez moi, c'est peut-être lié au code que sunOne génère, montre un peu le code


---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
Reply

Marsh Posté le 25-03-2003 à 17:09:25    

spitagor a écrit :

ok mais si je veux créer d'autres formes du style des rectangles dans un meme jPanel je dois tout mettre dans une meme methode paint()
 
comment on fait si jamais on a plusieurs jPanel dans ce cas?
 
a oui et aussi g une question : j'utilise sunOne studio pour faire mon interface grafik. le probleme c ke qd je fais un setVisible(true) sur une jFrame ca ne me met qu'un toute petite fenetre et je suis obligé de l'agrandir manuellement a chak fois  
 
j'ai essayé avec setSize( valeur, valeur) mais ca marche pas pourtant ca devrait


Ya bien un frame.pack() ?
 
Ha ou alors c'est parce que tu mets un JPanel vide dedans ... il faut lui attribuer une dimension, sinon, il ajuste la frame pour afficher ... rien donc au minimum [:spamafote]


Message édité par bobuse le 25-03-2003 à 17:10:24

---------------
get amaroK plugin
Reply

Marsh Posté le 25-03-2003 à 21:51:32    

oui en fait ca venait du pack() generé automatiquement par sunone d'ailleurs je me demande un peu a koi ca sert...
 
yavé une option dans la jFrame il fallait choisir generate resize code au lieu de generate pack()
 
voilou

Reply

Marsh Posté le 25-03-2003 à 22:18:27    

spitagor a écrit :

oui en fait ca venait du pack() generé automatiquement par sunone d'ailleurs je me demande un peu a koi ca sert...
 
yavé une option dans la jFrame il fallait choisir generate resize code au lieu de generate pack()
 
voilou


le pack c'est pour quand tu mets dans ta frame des objets auxquels tu donnes la dimension que tu souhaite, après tu fais pack() et ca dimensionne ta frame pour qu'elle ai juste la bonne taille pour contenir tous les objets.


---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
Reply

Marsh Posté le 26-03-2003 à 08:12:24    

a ben ok mais alors le pack() devait pas marcher puisque ca me mettait une fenetre minuscule alors que j'avais 3 jPanel, dans ma Jframe principale + des boutons + plein de trucs ...
 
zarb qd meme...

Reply

Marsh Posté le 26-03-2003 à 08:12:24   

Reply

Marsh Posté le 26-03-2003 à 14:23:37    

spitagor a écrit :

a ben ok mais alors le pack() devait pas marcher puisque ca me mettait une fenetre minuscule alors que j'avais 3 jPanel, dans ma Jframe principale + des boutons + plein de trucs ...
 
zarb qd meme...


oui, mais tu leur a donné une preferredSize à tes panel, boutons..?
 

Citation :


public void pack()
 
    Causes this Window to be sized to fit the preferred size and layouts of its subcomponents. If the window and/or its owner are not yet displayable, both are made displayable before calculating the preferred size. The Window will be validated after the preferredSize is calculated.


si les preferredSize des subcomponents sont nuls, alors ca semble normal.


Message édité par deltaden le 26-03-2003 à 14:27:37

---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
Reply

Sujets relatifs:

Leave a Replay

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