Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > fr.comp.lang.java > #1626
| From | Yliur <yliur@free.fr> |
|---|---|
| Newsgroups | fr.comp.lang.java |
| Subject | Re: Problème de logique. |
| Date | 2017-12-21 19:14 +0100 |
| Organization | Groupes francophones par TrigoFACILE |
| Message-ID | <20171221191430.3472e4ff@free.fr> (permalink) |
| References | <5a3bf2f6$0$20432$426a74cc@news.free.fr> |
Le 21 Dec 2017 17:44:22 GMT bloiiing <bloiiing.invalid@yahoo.com> a écrit : > J'ai des objets Chapter qui contiennent 3 String (body, notes et > synopsis). La String body va s'afficher dans un JTextPane lui-même > dans une JTabbedPane. À chaque body correspond une notes et une > synopsis qui vont s'afficher dans 2 autres JTextPane eux-mêmes dans > une autre JTabbedPane. > > Les String notes et synopsis sont changés dans le même JTextPane > chaque fois qu'un body est ouvert. Par contre, chaque body va > s'afficher dans un JTextPane différent. > > Mon problème c'est pour synchroniser le tout. Pour qu'à chaque body > s'affiche le notes et le synopsis correspondants. > > Une solution m'avait été suggérée, c'est celle d'un seul JTextPane > pour les body qui s'efface à chaque nouveau Chapter sélectionné. Dans > ce cas, c'est très simple et je peux m'en sortir. Mais pour la beauté > et surtout pour l'ergonomie de mon logiciel, je souhaiterais > conserver l'option de départ, à savoir plusieurs JTextPane dans la > même JTabbedPane pour afficher les champs body. > > Je ne sais pas si je me suis bien expliqué... > > La question c'est: Comment faire pour afficher les bonnes notes et > synopsis pour chaque body sélectionné dans n'importe quel ordre? Et > si je ferme un onglet body, pour que les notes et synopsis laissent > place à ceux du body correspondand nouvellement affiché? Si je comprends bien, le problème est que tu as d'un côté des onglets permettant d'afficher le corps des chapitres ouverts et de l'autre des champs qui affichent les notes et synopsis ? Il existe bien une notion de chapitres ouverts / en cours d'édition alors que les autres sont juste listés quelque part ? Est-ce qu'un chapitre peut être ouvert plusieurs fois au même moment ? Est-ce que les notes et synopsis seront enregistrés automatiquement quand on passe d'un chapitre à l'autre ? Auquel cas ça pose des questions supplémentaires, attention : le moment auquel les données sont enregistrées est important pour déterminer la manière de gérer tout ça. Un petit gribouillis de comment l'interface se présente peut être utile aussi. Cherches-tu à mimer exactement le logiciel dont tu t'inspires ? Quelles sont les différences ? Si le but est de réagir aux changement d'onglet (ajout / retrait / activation d'un onglet), je pense que tu peux utiliser addChangeListener sur ton composant JTabbedPane. À chaque changement, en fonction de l'onglet effectivement affiché tu peux mettre à jour les champs texte graphiques notes et synopsis. Pour ça il faudra savoir à quel chapitre correspond l'onglet affiché. Je suppose que chaque onglet est représenté par un composant particulier, peut-être de JPanel ? Dans ce cas tu crées une classe PanneauCorpsChapitre qui hérite de JPanel et contient un attribut supplémentaire : la référence au chapitre concerné. Et tu utilises ce panneau particulier à la place de JPanel (quand tu le crées, il faut lui passer la référence au chapitre qu'il représente) : il fait la même chose mais il contient une information en plus. Donc dans l'écouteur de l'événement tu récupères le panneau affiché avec getSelectedComponent, il s'agit d'un objet de type PanneauCorpsChapitre dans lequel tu trouves les textes des notes et synopsis pour mettre à jour ces deux champs qui se trouvent ailleurs. Attention au cas où plus aucun onglet n'est ouvert. Est-ce bien ça que tu voulais faire ?
Back to fr.comp.lang.java | Previous | Next — Previous in thread | Next in thread | Find similar
Problème de logique. bloiiing <bloiiing.invalid@yahoo.com> - 2017-12-21 17:44 +0000
Re: Problème de logique. Yliur <yliur@free.fr> - 2017-12-21 19:14 +0100
Re: Problème de logique. bloiiing <bloiiing.invalid@yahoo.com> - 2017-12-21 19:49 +0000
csiph-web