[Java] inclusion de JPanel

inclusion de JPanel [Java] - Java - Programmation

Marsh Posté le 11-04-2005 à 19:26:07    

Voila en fait j'ai une classe qui dérive JFrame dans laquelle j'appelle une classe qui dérive de  
JPanel qui me dessine avec la methode paint un quadrillage.
 
D'autre part, je souhaite a l'aide d'une autre classe dérivant de JPanel, inclure des boutons dans mon JFrame. Mais y'a un gros bug quand j'essaie de construire les 2 JPanels dans mon JFrame (les boutons ne s'affiche pas ou un seul bouton apparait et ecrase les autres, j'ai meme vu mon quadrillage disparaitre en essayant plusieurs remaniement de code... bref je desepere une peu lol
 
Quelqu'un aurait une solution qui marche a tous les coups ?  
 
Merci d'avance

Reply

Marsh Posté le 11-04-2005 à 19:26:07   

Reply

Marsh Posté le 11-04-2005 à 19:53:33    

sois plus précis : montres un bout de code (mais pas tout hein, juste la partie qui correspond)


---------------
The Rom's, à votre service
Reply

Marsh Posté le 11-04-2005 à 21:29:46    

Ma Frame principale qui appelle le JPanel qui creer le quadrillage par l'intermédiaire de getContentPane().add(vp)

Code :
  1. public class BatailleNavale extends JFrame
  2. {
  3. //constructeur de la BatailleNavale
  4. public BatailleNavale(int ligne, int colonne) throws BatailleNavaleException
  5. {
  6.  Plateau p = new Plateau(ligne,colonne);
  7.  p.remplir(3,3,3);
  8.  System.out.println(""+p.toString());
  9.  VuePlateau vp = new VuePlateau(p);
  10.  getContentPane().add(vp);
  11.  PaneauAjoutBateau pab = new PaneauAjoutBateau(this);
  12. }
  13. //methode main principale    
  14. public static void main (String [] args) throws BatailleNavaleException
  15.  {
  16.  BatailleNavale bn = new BatailleNavale(12,12);
  17.  }
  18. }


 
 
Et voila le JPanel que je tente d'ajouter :

 

Code :
  1. public class PaneauAjoutBateau extends JPanel
  2. {
  3.  JRadioButton croiseur,escorteur,sousmarin,horizontal,vertical;
  4.  JButton ajouter;
  5.  public PaneauAjoutBateau(BatailleNavale bn)
  6.  {
  7.  ButtonGroup groupe1 = new ButtonGroup();
  8.  ButtonGroup groupe2 = new ButtonGroup();
  9.  croiseur = new JRadioButton("croiseur",true);
  10.  groupe1.add(croiseur);
  11.  bn.getContentPane().add(croiseur);
  12.  escorteur = new JRadioButton("escorteur" );
  13.  groupe1.add(escorteur);
  14.  bn.getContentPane().add(escorteur);
  15.  sousmarin = new JRadioButton("sousmarin" );
  16.  groupe1.add(sousmarin);
  17.  bn.getContentPane().add(sousmarin);
  18.  horizontal = new JRadioButton("horizontal",true);
  19.  groupe2.add(horizontal);
  20.  bn.getContentPane().add(horizontal);
  21.  vertical = new JRadioButton("vertical" );
  22.  groupe2.add(vertical);
  23.  bn.getContentPane().add(vertical);
  24.  ajouter = new JButton("Ajouter" );
  25.  bn.getContentPane().add(ajouter);
  26.  }
  27. }


Message édité par Mo$$$ le 11-04-2005 à 21:33:16
Reply

Marsh Posté le 11-04-2005 à 21:50:02    

héhé, je m'attendais à 3-4 lignes mais bon ...  
j'ai jamais trop su pourquoi ca marche pas mais en gros j'arrive à ne mettre qu'un seul élément dans le contentPane pour qu'il s'affiche correctement.
bref je te propose d'utiliser des javax.swing.Box imbriqués pour définir le placement (horizontal et vertical) de tes éléments. Au final, ta Box principale qui contient toutes les autres ira dans le contentPane ...


---------------
The Rom's, à votre service
Reply

Marsh Posté le 11-04-2005 à 21:57:49    

lol desole pour le code ;-)
 
Merci pour ton indication je file voir les API specification pour savoir comment utiliser ca !

Reply

Marsh Posté le 11-04-2005 à 22:06:27    

heu petite question comment ca marche tes box ? :)

Reply

Marsh Posté le 11-04-2005 à 22:12:30    

http://forum.hardware.fr/hardwaref [...] 7812-1.htm
sinon, regardes l'api, tout est super bien expliqué


Message édité par TheRom_S le 11-04-2005 à 22:12:58

---------------
The Rom's, à votre service
Reply

Marsh Posté le 11-04-2005 à 22:20:04    

merci beaucoup ;-)

Reply

Sujets relatifs:

Leave a Replay

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