Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > fr.comp.lang.java > #1626

Re: Problème de logique.

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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