Ajouter JButtons d'un Composite
Je veux ajouter un certain nombre de JButtons
à un JPanel
à l'aide d'un For
boucle. Lorsque l'utilisateur appuie sur un bouton, le code suivant est exécuté:
for (i = 0; i < 10; i++)
{
JButton aButton = new JButton();
mainPanel.add(aButton);
mainPanel.revalidate();
mainPanel.repaint();
System.out.println("Added: " + (i + 1) + "buttons");
}
Cependant, lorsque j'appuie sur le bouton, pas de JButtons sont ajoutés à la Composite, mais le programme imprime le nombre de boutons qui devraient être ajoutés.
Pas sûr de ce que le problème est ici =/
Ce gestionnaire de mise en page utilisez-vous?
Essayez
Vous ne devriez pas le valider et de le repeindre votre panneau à chaque fois que vous ajoutez un bouton, mais seulement après avoir ajouté tous vos boutons. La validation et la peinture d'une fenêtre GUI est généralement coûteux.
Essayez
invalidate
au lieu de revalidate
et repaint
- et est-il une raison vous ne pouvez pas le faire à la fin de la boucle?Vous ne devriez pas le valider et de le repeindre votre panneau à chaque fois que vous ajoutez un bouton, mais seulement après avoir ajouté tous vos boutons. La validation et la peinture d'une fenêtre GUI est généralement coûteux.
OriginalL'auteur Flynn | 2010-11-08
Vous devez vous connecter pour publier un commentaire.
J'ai résolu mon problème. Je suis à l'aide de NetBeans et apparemment Libre de Mise en page ne fonctionne pas, j'ai donc mis le Composite de la mise en page de la Grille de Mise en page et le tour est joué, les boutons apparaissent
Merci. Va repeindre l'extérieur de la boucle
OriginalL'auteur Flynn
Je voudrais utiliser le suivant.
Tous vous avez besoin est revalidate(). Ce sera la cause de la disposition du gestionnaire sera invoqué.
OriginalL'auteur Matti Lyra