J'ai un JTabbedPane et je dois remplacer le composant de l'onglet 1 lorsque l'utilisateur le sélectionne. Je ne peux pas ajouter directement le bon composant au démarrage de l'application car je n'ai pas de données complètes pour le générer.Modifier le composant JTabbedPane dans l'onglet de sélection
je besoin de quelque chose comme ceci:
int tabTochange = 1;
tabbedPane.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
if (tabbedPane.getSelectedIndex() == tabTochange)
{
JComponent component = generataComponent();
tabbedPane.removeTabAt(tabTochange); // Remove old tab
// add new one
tabbedPane.insertTab("title", null, component, "tip", tabTochange);
}
}
});
Mais ce code ne fonctionne pas, il supprime l'onglet d'autres onglets après onglet 1 et dupliquer.
De cette façon, l'onglet tabbedPane 1 restant comme premier créé, également si j'ai modifié les caractéristiques du composant getComponentAt (tabTochange). Peut-être que je dois forcer une sorte de redessiner? – Alvins
L'approche habituelle est 'revalidate()' et 'repaint()', que 'CardLayout' gère pour vous. – trashgod