[Java] Pas de repositionnement de mes JLabel sur mon JPanel ?

Pas de repositionnement de mes JLabel sur mon JPanel ? [Java] - Java - Programmation

Marsh Posté le 07-05-2009 à 17:43:24    

Bonjour,
 
 
Je rencontre actuellement un petit probleme quant au positionnement d'objets JLabel sur un JPanel : j'ai un Vector, contenant des objets de type NC (classe contenant un JLabel et un Point, representant les coordonnees).
 
Je place mes JLabel sur le JPanel sans souci, puis, quand j'ai termine, serialize le Vector dans un fichier et quitte l'appliquation.
Le probleme c'est que quand je re-ouvre le fichier, les JLabel sont bien ajoutes au JPanel mais leurs coordonnees ne sont pas du tout respectees : ils sont placees en haut, par defaut.
 
Voici mon code :
 

Code :
  1. for (int i=0 ; i<components.size() ; i++) {
  2. rightArea.add(Items.getJLabelNo(i));      // ajout des JLabel au JPanel
  3. Items.getJLabelNo(i).setLocation(Items.getCoordNo(i));    // repositionnement des JLabel dans le JPanel
  4. }


 
 
 
Quelqu'un a une idee du probleme ?
 
Merci d'avance !

Reply

Marsh Posté le 07-05-2009 à 17:43:24   

Reply

Marsh Posté le 08-05-2009 à 11:03:03    

up!

Reply

Marsh Posté le 08-05-2009 à 12:15:33    

Voici un code plus complet, soulevant exactement le meme probleme :
 

Code :
  1. public class Main
  2. {
  3.     public static JPanel jp;
  4.     public static JFrame f;
  5.     public static Vector components = new Vector<JLabel> ();
  6.     public static void main(String[] args)
  7.     {
  8.         f = new JFrame();
  9.         f.setExtendedState(JFrame.MAXIMIZED_BOTH);
  10.         f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11.         f.setVisible(true);
  12.         components.add(new JLabel("toto" ));
  13.         components.add(new JLabel("tata" ));
  14.         components.add(new JLabel("tutu" ));
  15.         jp = new JPanel();
  16.         jp.setBackground(Color.GREEN);
  17.         for (int i=0 ; i<components.size() ; i++)
  18.         {
  19.             ((JLabel)components.get(i)).setLocation(i*50,i*50);
  20.             jp.add((JLabel)components.get(i));
  21.         }
  22.         f.add(jp);
  23.     }
  24. }


 
 
Merci d'avance...

Reply

Marsh Posté le 11-05-2009 à 22:52:52    

Problème résolu grâce à l'ajout d'un

Code :
  1. jp.setLayout(null)

Reply

Sujets relatifs:

Leave a Replay

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