[Java] Repositionnement JLabel dans JPanel

Résolu
zzzer Messages postés 938 Statut Membre -  
zzzer Messages postés 938 Statut Membre -
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 :
for (int i=0 ; i<components.size() ; i++) {
rightArea.add(Items.getJLabelNo(i));      // ajout des JLabel au JPanel
Items.getJLabelNo(i).setLocation(Items.getCoordNo(i));    // repositionnement des JLabel dans le JPanel
}


Quelqu'un a une idee du probleme ?

Merci d'avance !

--
N'oubliez pas de marquer la discussion comme résolue dès que c'est le cas ! -> En haut de la page, Statut: Résolu
Attention aussi à bien respecter la 6e règle de la charte : 
Rédiger les messages dans un langage clair sans abréviation, style télégraphique ou mode SMS
Configuration: Acer Aspire 9302WSMi

1Go de RAM
Processeur 1.7GHz dual core
Carte graphique NVidia 6100
A voir également:

3 réponses

zzzer Messages postés 938 Statut Membre 181
 
up!
0
zzzer Messages postés 938 Statut Membre 181
 
Voici un code plus complet, soulevant le meme probleme :

public class Main
{
    public static JPanel jp;
    public static JFrame f;
    public static Vector components = new Vector<JLabel> ();

    public static void main(String[] args)
    {
        f = new JFrame();
        f.setExtendedState(JFrame.MAXIMIZED_BOTH);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);

        components.add(new JLabel("toto"));
        components.add(new JLabel("tata"));
        components.add(new JLabel("tutu"));

        jp = new JPanel();
        jp.setBackground(Color.GREEN);

        for (int i=0 ; i<components.size() ; i++)
        {
            ((JLabel)components.get(i)).setLocation(i*50,i*50);
            jp.add((JLabel)components.get(i));
        }
        f.add(jp);
    }
}


Merci d'avance...

0
zzzer Messages postés 938 Statut Membre 181
 
Resolu : il me fallait mettre le layout manager a null :

frame.setLayout(null);

0