2010-09-26 27 views
2

Hy .. J'ai un JPanel, et dans ce contentPanel j'ai ajouté d'autres panneaux personnalisés et leur donnes des emplacements etc. Alors maintenant j'ai ajouté un JScrollPane au contentPanel et toujours quand je défile vers le bas il efface ma contentPanel, mais les panneaux sont toujours là mais pas visibles ...JScrollPane efface toujours mon Panel

Comment les rendre visibles à nouveau?

C'est mon code pour ajouter le Panel dans le contentPanel. Les x, y, j sont des paramètres pour l'emplacement car j'ai une fenêtre fixe.

private void reloadContentPanel() { 

    int x = -200, y = 0, j = 1, row = 4; 
    EventPanel panel = null; 

    int i; 
    for(i=0; i < this.images.size();i++) 
    { 
     panel = new EventPanel(this.images.get(i).getAbsolutePath(), 
           this.images.get(i).getName()); 

     panel.setLocation(x+(j*200), y); 
     j++; 
     if(i == row) { 
      x = -200; 
      y += 205; 
      j = 1; 
      row += 5; 
     } 
     this.contentPanel.add(panel); 
    } 
    this.repaint(); 
} 

Merci

+1

"Si le code nécessaire, pls Post it!" vous devriez poster le vôtre. – pstanton

Répondre

0

J'ai la réponse! :)

J'utilise un GridLayout pas un FlowLayout, donc il est très bien et il actualise automatiquement les panneaux =)

1

il semble que vous n'utilisez pas correctement. LayoutManager

après avoir créé votre JFrame (je devine au sein de votre constructeur) ajouter ce qui suit (par exemple):

this.setLayout(new FlowLayout()); 

ce ne sera certainement pas le meilleur gestionnaire de mise en page pour ce que vous essayez de faire, mais ils arrêtez les appels add en remplaçant le composant affiché.

vous devez lire davantage sur LayoutManager s

En outre, il est pas vraiment souhaitable d'étendre JFrame. Il est préférable de traiter JFrame en tant que membre de votre classe, comme tous les autres composants.

+0

bragboy, je sais ce que j'ai écrit. – pstanton

+0

Vous pensez que si je règle la mise en page sur FlowLayout, mes panneaux seront automatiquement placés dans la bonne position? Je l'ai essayé et les panneaux sont dans la même position que le premier. (chevauché) –