Voilà mon problème : J'ai un panneau à onglets (JTabbedPane) pour lequel
je met dans chaque nouvel onglet un JPanel organisé selon un CardLayout.
Or, j'aimerais que le titre de l'onglet se mette à jour en prenant le
"nom" de la carte qui est affichée dans cet onglet. Par exemple, si la
carte qui est affichée dans l'onglet 1 est la carte "Accueil", j'aimerai
que mon onglet prenne "Accueil" pour titre.
Celà permet de naviguer plus facilement car on sait ce que contient
chaque onglet. Pour l'instant j'ai écrit ceci :
Là où il y'à les *** il me manque un String. Je n'arrive pas à récupérer
le nom de la carte qui est affichée car la classe CardLayout ne possède
pas de méthode permettant de récupérer les noms des cartes.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Xavier
Salut,
Peux-tu faire passer un bout de code, avec le minimum, pour ton problème ?
A+
Xavier
"Thibaut Desmarest" a écrit dans le message de news:chn57k$vr6$
bonjour à tous,
Voilà mon problème : J'ai un panneau à onglets (JTabbedPane) pour lequel je met dans chaque nouvel onglet un JPanel organisé selon un CardLayout. Or, j'aimerais que le titre de l'onglet se mette à jour en prenant le "nom" de la carte qui est affichée dans cet onglet. Par exemple, si la carte qui est affichée dans l'onglet 1 est la carte "Accueil", j'aimerai que mon onglet prenne "Accueil" pour titre.
Celà permet de naviguer plus facilement car on sait ce que contient chaque onglet. Pour l'instant j'ai écrit ceci :
Là où il y'à les *** il me manque un String. Je n'arrive pas à récupérer le nom de la carte qui est affichée car la classe CardLayout ne possède pas de méthode permettant de récupérer les noms des cartes.
Pouvez vous m'aider ?
Merci d'avance à tous !!
Thibaut
Salut,
Peux-tu faire passer un bout de code, avec le minimum, pour ton problème ?
A+
Xavier
"Thibaut Desmarest" <thibaut@cogidis.com> a écrit dans le message de
news:chn57k$vr6$1@biggoron.nerim.net...
bonjour à tous,
Voilà mon problème : J'ai un panneau à onglets (JTabbedPane) pour lequel
je met dans chaque nouvel onglet un JPanel organisé selon un CardLayout.
Or, j'aimerais que le titre de l'onglet se mette à jour en prenant le
"nom" de la carte qui est affichée dans cet onglet. Par exemple, si la
carte qui est affichée dans l'onglet 1 est la carte "Accueil", j'aimerai
que mon onglet prenne "Accueil" pour titre.
Celà permet de naviguer plus facilement car on sait ce que contient
chaque onglet. Pour l'instant j'ai écrit ceci :
Là où il y'à les *** il me manque un String. Je n'arrive pas à récupérer
le nom de la carte qui est affichée car la classe CardLayout ne possède
pas de méthode permettant de récupérer les noms des cartes.
Peux-tu faire passer un bout de code, avec le minimum, pour ton problème ?
A+
Xavier
"Thibaut Desmarest" a écrit dans le message de news:chn57k$vr6$
bonjour à tous,
Voilà mon problème : J'ai un panneau à onglets (JTabbedPane) pour lequel je met dans chaque nouvel onglet un JPanel organisé selon un CardLayout. Or, j'aimerais que le titre de l'onglet se mette à jour en prenant le "nom" de la carte qui est affichée dans cet onglet. Par exemple, si la carte qui est affichée dans l'onglet 1 est la carte "Accueil", j'aimerai que mon onglet prenne "Accueil" pour titre.
Celà permet de naviguer plus facilement car on sait ce que contient chaque onglet. Pour l'instant j'ai écrit ceci :
Là où il y'à les *** il me manque un String. Je n'arrive pas à récupérer le nom de la carte qui est affichée car la classe CardLayout ne possède pas de méthode permettant de récupérer les noms des cartes.
Pouvez vous m'aider ?
Merci d'avance à tous !!
Thibaut
Thibaut Desmarest
Xavier wrote:
Salut,
Peux-tu faire passer un bout de code, avec le minimum, pour ton problème ?
A+
Xavier
Salut,
Ben je pensais justement avoir mis le minimum, car le reste du code n'a rien à voir, c'est juste une petite fonction ça ! Je rappelle que le but est de faire en sorte que quand je change de carte dans un onglet le titre de l'onglet prenne le nom de la carte.
Voici un bout de code un peu plus gros, c'est le morceau de actionPerformed() qui correspond au clic sur le bouton "Suivant" qui fait avancer le cardLayout d'une carte en avant. La dernière ligne est toujours celle ou il me manque le nom de la carte qui vient d'être affichée.
Peux-tu faire passer un bout de code, avec le minimum, pour ton problème ?
A+
Xavier
Salut,
Ben je pensais justement avoir mis le minimum, car le reste du code n'a
rien à voir, c'est juste une petite fonction ça ! Je rappelle que le but
est de faire en sorte que quand je change de carte dans un onglet le
titre de l'onglet prenne le nom de la carte.
Voici un bout de code un peu plus gros, c'est le morceau de
actionPerformed() qui correspond au clic sur le bouton "Suivant" qui
fait avancer le cardLayout d'une carte en avant. La dernière ligne est
toujours celle ou il me manque le nom de la carte qui vient d'être affichée.
Peux-tu faire passer un bout de code, avec le minimum, pour ton problème ?
A+
Xavier
Salut,
Ben je pensais justement avoir mis le minimum, car le reste du code n'a rien à voir, c'est juste une petite fonction ça ! Je rappelle que le but est de faire en sorte que quand je change de carte dans un onglet le titre de l'onglet prenne le nom de la carte.
Voici un bout de code un peu plus gros, c'est le morceau de actionPerformed() qui correspond au clic sur le bouton "Suivant" qui fait avancer le cardLayout d'une carte en avant. La dernière ligne est toujours celle ou il me manque le nom de la carte qui vient d'être affichée.
Ouais, moi je n'utilise jamais "next" sur un CardLayout, justement parce qu'on en sait pas où on en est.
Une idée serait, après le "show" de tester parmis test Panel lequel est visible ("isVisible()").
Xavier
Je ne vois pas comment celà va pouvoir m'aider car les Panels n'ont pas de nom (Si ??) !! Quand on asocie un nom à une carte, c'est géré par le CardLayout, et justement ce que j'expliquais c'est que l'on n'a pas accès à ces noms une fois la carte créée. Donc si je fais un isVisible() je récupère un Panel (mais de toutes façons je sais le Panel c'est celui du dessus), mais je ne peux toujours pas récupérer le nom qui lui est associé dans le CardLayout...
Ouais, moi je n'utilise jamais "next" sur un CardLayout, justement parce
qu'on en sait pas où on en est.
Une idée serait, après le "show" de tester parmis test Panel lequel est
visible ("isVisible()").
Xavier
Je ne vois pas comment celà va pouvoir m'aider car les Panels n'ont pas
de nom (Si ??) !! Quand on asocie un nom à une carte, c'est géré par le
CardLayout, et justement ce que j'expliquais c'est que l'on n'a pas
accès à ces noms une fois la carte créée. Donc si je fais un isVisible()
je récupère un Panel (mais de toutes façons je sais le Panel c'est celui
du dessus), mais je ne peux toujours pas récupérer le nom qui lui est
associé dans le CardLayout...
Ouais, moi je n'utilise jamais "next" sur un CardLayout, justement parce qu'on en sait pas où on en est.
Une idée serait, après le "show" de tester parmis test Panel lequel est visible ("isVisible()").
Xavier
Je ne vois pas comment celà va pouvoir m'aider car les Panels n'ont pas de nom (Si ??) !! Quand on asocie un nom à une carte, c'est géré par le CardLayout, et justement ce que j'expliquais c'est que l'on n'a pas accès à ces noms une fois la carte créée. Donc si je fais un isVisible() je récupère un Panel (mais de toutes façons je sais le Panel c'est celui du dessus), mais je ne peux toujours pas récupérer le nom qui lui est associé dans le CardLayout...
Si tu as une autre idée ?? ;)
Merci,
Thibaut
Xavier
Salut Thibaut,
Je ne vois pas comment celà va pouvoir m'aider car les Panels n'ont pas de nom (Si ??) !!
"setName" ..... ;-)
Ca permet de nommer un Panel, très pratique par exemple lorsque tu fais SHIT+F1 et que dans ta console, ça te sort toute l'arborescence de tes composants graphiques, tu peux repérer tes composants avec leurs noms. Ca c'est une parenthèse pour le débug. Mon idée n'était pas du tout dans l'exploitation de cette possibilité.
Lorsque j'utilise un CardLayout, j'y ajoute des Panel "nommé" avec comme label pour le CardLyout le label du panel :
CardLayout cardLayout = new CardLayout(); panelParams = new JPanel(cardLayout); panelParamsNone = new JPanel(); panelParamsNone.setName("panelParamsNone"); panelParams.add(panelParamsNone, panelParamsNone.getName());
Comme ça, pour montrer ce panel, je n'ai qu'à faire :
Maintenant, pour ton problème, après le next, tu passes en revue tes panels, que tu as gardé en membre de ta classe (s'il ne sont pas trop nombreux) ou dans une liste (ArrayList par exemple). Tu parcours chaque panel jusqu'à en trouver un qui soit avec isVisible()=true. Là tu as trouvé le panel couramment affiché et tu peux en déduire le texte à mettre dans ton onglet. Non ?
Xavier
Salut Thibaut,
Je ne vois pas comment celà va pouvoir m'aider car les Panels n'ont pas
de nom (Si ??) !!
"setName" ..... ;-)
Ca permet de nommer un Panel, très pratique par exemple lorsque tu fais
SHIT+F1 et que dans ta console, ça te sort toute l'arborescence de tes
composants graphiques, tu peux repérer tes composants avec leurs noms. Ca
c'est une parenthèse pour le débug.
Mon idée n'était pas du tout dans l'exploitation de cette possibilité.
Lorsque j'utilise un CardLayout, j'y ajoute des Panel "nommé" avec comme
label pour le CardLyout le label du panel :
CardLayout cardLayout = new CardLayout();
panelParams = new JPanel(cardLayout);
panelParamsNone = new JPanel();
panelParamsNone.setName("panelParamsNone");
panelParams.add(panelParamsNone, panelParamsNone.getName());
Comme ça, pour montrer ce panel, je n'ai qu'à faire :
Maintenant, pour ton problème, après le next, tu passes en revue tes panels,
que tu as gardé en membre de ta classe (s'il ne sont pas trop nombreux) ou
dans une liste (ArrayList par exemple). Tu parcours chaque panel jusqu'à en
trouver un qui soit avec isVisible()=true. Là tu as trouvé le panel
couramment affiché et tu peux en déduire le texte à mettre dans ton onglet.
Non ?
Je ne vois pas comment celà va pouvoir m'aider car les Panels n'ont pas de nom (Si ??) !!
"setName" ..... ;-)
Ca permet de nommer un Panel, très pratique par exemple lorsque tu fais SHIT+F1 et que dans ta console, ça te sort toute l'arborescence de tes composants graphiques, tu peux repérer tes composants avec leurs noms. Ca c'est une parenthèse pour le débug. Mon idée n'était pas du tout dans l'exploitation de cette possibilité.
Lorsque j'utilise un CardLayout, j'y ajoute des Panel "nommé" avec comme label pour le CardLyout le label du panel :
CardLayout cardLayout = new CardLayout(); panelParams = new JPanel(cardLayout); panelParamsNone = new JPanel(); panelParamsNone.setName("panelParamsNone"); panelParams.add(panelParamsNone, panelParamsNone.getName());
Comme ça, pour montrer ce panel, je n'ai qu'à faire :
Maintenant, pour ton problème, après le next, tu passes en revue tes panels, que tu as gardé en membre de ta classe (s'il ne sont pas trop nombreux) ou dans une liste (ArrayList par exemple). Tu parcours chaque panel jusqu'à en trouver un qui soit avec isVisible()=true. Là tu as trouvé le panel couramment affiché et tu peux en déduire le texte à mettre dans ton onglet. Non ?