comment puis-je ajouter des composants dynamiquement dans un jpanel? Je dois ajouter un bouton quand je clique sur le bouton les composants doivent être ajoutés au JPanel. Ma question est que l'ajout d'un champ de texte et d'un bouton à jpanel quand je clique sur le bouton ajouter l'utilisateur peut cliquer sur le bouton ajouter un certain nombre de fois en fonction de ce que je dois les ajouter au jpanel. J'ai ajouté à scrollerpane à mon jpanel, et le gestionnaire de mise en page jpanel est défini sur null.ajouter des composants dynamiquement dans un JPanel
3
A
Répondre
5
Tout comme vous le faites toujours, sauf que vous devez appeler:
panel.revalidate();
lorsque vous avez terminé, puisque le conteneur est déjà réalisé.
4
Utilisez un ActionListener
, vous pouvez utiliser une classe anonyme comme ceci:
JPanel myJPanel = new JPanel();
...
b = new Button("Add Component");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JLabel someLabel = new JLabel("Some new Label");
myJPanel.add(someLabel);
myJPanel.revalidate();
}
});
+0
Vous devez revalider le conteneur (myJPanel) après avoir ajouté des composants si le conteneur a déjà été affiché. –
Questions connexes
- 1. Comment ajouter des composants à un JPanel à l'exécution
- 2. Java obtenir des composants JPanel
- 3. façons d'ajouter des composants invisibles dans JPanel?
- 4. créer des composants dynamiquement
- 5. Comment ajouter des vues dynamiquement ou par-dessus d'autres composants?
- 6. Ajouter un contrôle ActiveX à un JPanel
- 7. zoom a JPanel et tous ses composants
- 8. Passage de polices aux composants d'un JPanel
- 9. Ajouter JButtons à JPanel
- 10. pose un JPanel avec plusieurs composants personnalisés utilisant Swing
- 11. Images dans un JPanel
- 12. Traitement des composants Flex générés dynamiquement
- 13. ajouter des contrôles dynamiquement
- 14. Ajouter un onglet dynamiquement
- 15. Ajouter dynamiquement des données à un tableau
- 16. placer des points aléatoires dans un JPanel
- 17. comment puis-je créer dynamiquement des composants html dans Jsf2
- 18. Composants, créer dynamiquement et travailler avec eux
- 19. ajouter dynamiquement des contrôles dans asp.net page
- 20. Ajouter dynamiquement des éléments pliables
- 21. Comment ajouter des classes dynamiquement dans jquery
- 22. Pour ajouter dynamiquement des nœuds dans jquery
- 23. Ajouter dynamiquement des écouteurs d'événement
- 24. Ajouter des contrôles à WinForms dynamiquement dans un autre thread
- 25. Comment ajouter dynamiquement des objets
- 26. dessiner un graphique dans un JPanel dans Net Beans
- 27. iPhone + ajouter dynamiquement des contrôles
- 28. Comment puis-je restreindre l'affichage des composants WebPart dans la fenêtre Ajouter des composants WebPart?
- 29. comment ajouter des formes différentes partiellement sur JPanel + image qui est sur JPanel
- 30. Flex Composants créés dynamiquement ajoutés aux composants personnalisés
En effet (bien que je ne pense pas que 'repaint' est réellement nécessaire). Voir les documents d'API pour 'java.awt.Container.add'. –
Avant j'ai toujours pensé que les deux méthodes étaient toujours utilisées ensemble, puisque je l'ai vu comme ça dans de nombreux exemples. Juste essayé moi-même et en effet, revalidant semble assez! merci pour ce conseil, vous avez raison. – crusam
Dans ce cas simple "d'ajouter" un bouton, vous n'aurez généralement jamais besoin d'utiliser repaint(). Cependant, essayez un simple cas de "suppression" d'un bouton et cela ne fonctionnera pas. Dans ce cas, vous devez utiliser repaint(). Ma règle générale est de l'essayer d'abord avec revalidate(), si cela ne fonctionne pas, ajoutez un repaint(); – camickr