J'ai un problème de conception, qui fait que je tourne en rond depuis plus de deux semaines.

Rôliste passionné et surtout maître de jeu, je me suis lancé dans la réalisation d'un programme pour faciliter la création des personnages de mes joueurs. La finalité est de pouvoir imprimer la fiche une fois créée.

Un personnage se résume, à première vue, à deux types d'informations:
les éléments de description comme le nom, l'age ou la réputation,
les attributs numériques (vie, mana, caractéristiques, talents...), éventuellement calculés à la volée,
la race / classe, que je néglige pour le moment.

Pour les attributs numériques, tout baigne. Je mets en place un Jspinner ou un JLabel pour chacun, un système de Listener pour gérer les points de création, et le tour est joué.

Le problème est plus délicat pour les descriptions.
Je lis la liste des éléments et leur nature dans un fichier de configuration, pour pouvoir changer de jeu. Or, ce fichier peut contenir les types suivants:
liste (ComboBox)
saisie d'un nombre
saisie d'une phrase
sélection booléenne

J'ai donc une classe ModeleFiche, initialisée d'après le fichier, et chargée de contenir les valeurs.
Il y a une classe GuiFiche, sensée lire le ModeleFiche pour générer les composants utiles, les placer et les relier aux valeurs.
En théorie, ca marche, et c'est cool. En pratique, je ne sais pas comment utiliser les deux informations suivantes: l'emplacement dans la fenêtre et le type de composant (JComboBox ou JTextField).

Par le passé, j'ai appris que le ModeleFiche devait utiliser une interface homogène pour tous les descripteurs. Mais quand je fais ainsi, je ne parviens pas à me passer d'une fonction "creerComposant(IdDescription)" dans ModeleFiche.

J'ai sûrement du rater une étape, probablement une classe auxilliaire.