IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Javabean avec nombre de propriétés variable


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 28
    Points : 19
    Points
    19
    Par défaut Javabean avec nombre de propriétés variable
    Bonjour à tous, je m'appelle Nicolas et j'ai un petit soucis concernant les Javabeans,

    Mon objectif : créer un composant qu'on puisse instancier graphiquement (grâce à un éditeur graphique), donc un javabean mais dont le nombre de propriétés est variable. L'idée c'est que je voudrais que l'utilisateur spécifie le nombre d'images que son composant doit posséder (les images correspondant chacunes aux différents états du composant) et qu'en fonction du nombre x qu'il a spécifié, un nombre x de champs à remplir lui soit proposer en conséquence dans la fenêtre de propriétés de l'éditeur graphique.
    Pour résumer c'est un bean qui aurait un nombre de propriétés variable .... à moins que vous y voyez autre chose ... :-D

    Ce que j'ai fait jusqu'à présent: Rien, je veux que je n'ai pas encore écrit une seule ligne de code, je commence déjà par me renseigner si c'est possible et si oui comment :
    Que doit-je utiliser comme type de propriétés (ou attributs) ? Tableau d'url d'images ? Vector d'url ? Autres ?
    Que doit-je mettre dans mon BeanInfo ?
    (Faut-il un PropertyDescriptor ?)


    J'espère que j'ai été clair ...

    Merci d'avance pour les réponses que vous pourrez m'apporter.

    Nicolas.

  2. #2
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Points : 368
    Points
    368
    Par défaut
    Je comprends pas trop ton problème. Mais qu'est ce qu'il t'empêche d'utiliser un tableau ou une collection ?

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Bonjour, merci d'avoir répondu.

    Et bien en fait, je n'ai pas de contrainte sur le fait d'utiliser une collection ou un tableau, ce qui est important pour moi ce serait d'avoir un Bean qui présente dans la fenêtre d'édition des ses propriétés un nombre variables de propriétés. Si par exemple je met dans la propriété nbImages = 5 alors je voudrais avoir 5 champs à remplir (donc finalement 5 propriétés en plus pour le bean) en dessous pour y mettre mes liens vers images mais si je met nbImages = 3 alors je veux qu'il n'apparaissent plus que 3 champs (donc plus que 3 propriétés en plus pour mon bean à la place des 5 précédentes).

    Donc je reformule mes questions :
    1/ Une fois un Bean instancié sur la fenêtre d'édition de mon éditeur graphique préféré, est-ce que je peut lui ajouter des propriétés (c'est à dire des attributs) ? (je pense que ce n'est pas possible mais je ne suis pas sûr ...)
    2/ Dans le cas où la réponse à 1 serait fausse, doit-je utiliser un tableau ou une collection (laquelle ?) afin de pouvoir répondre à mes besoins cités plus haut ? Et que dois-je alors mettre dans mon beanInfo pour répondre à mes besoins ?
    3/ Une autre solution serait de définir un bon nombre de propriétés et de cacher celles dont on désirent pas qu'elles apparaissent mais comment peut cacher des propriétés une fois mon bean instancié sur ma frame ?


    ps : je précise que quand je dis instancié sur ma frame, mon application n'est pas en route, c'est le moment où je suis dans mon éditeur graphique et que je place mes composants.


    J'espère que je suis un peu plus clair sinon n'hésitez pas à redemander des précisions.

    Merci pour vos réponse.

  4. #4
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Points : 368
    Points
    368
    Par défaut
    Autant faire simple lorsque l'on peut. Je ne vois pas pourquoi il faudrait utiliser autre chose qu'un tableau ou une collection.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Object[] properties;
    ou
    Collection<Object> properties;
    Les collections offrent la possibilité d'ajouter des éléments ou d'en supprimer si tu n'as pas besoin de cela alors utilise un simple tableau.

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    si tu veux que ton bean supporte un nombre varaible d'images, il suffit de lui créer un propriété, par exemple

    public Images[] getImages();
    public void setImages(Images[] images);

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Merci de vos réponses mais en fait je crois que je me suis mal exprimé. loool

    Ok pour les collections ou les tableaux mais mon problème n'est pas là.

    Imaginons que j'utilise un Vector par exemple, je peut donc rajouter autant d'élément que je veux dedans.
    Mais mon problème c'est la présentation graphique à l'utilisateur de ceci. Une fois que j'aurais instancié mon bean sur ma fenêtre graphique, je ne veux pas que l'utilisateur ai à entrer dans un champ ceci : "[path1,path2,path3]" (ou je ne sais quoi pour le vector), je veux quelquechose de plus "user friendly" car mes utilisateurs potentiels ne seront pas forcément des codeurs donc il faudrait qu'il ait juste à remplir des champs tout simples. Le problème c'est que je veux que le nombre de champ soit variable en fait .... si l'utilisateur spécifie qu'il veut mettre 3 images alors il doit apparaître 3 champs à remplir dans la fenêtre d'édition du bean ... et si dans la seconde d'aprés il décide que son composant a une image de plus alors un nouveau champ doit apparaître.

    Ce à quoi je pensais c'est soit définir un bon nombre de propriétés et les cacher et les montrer au fur et à mesure (mais comment cache-t-on une propriété afin qu'elle n'apparaisse pas dans la fenêtre d'édition ?) soit utiliser un vector comme vous dîtes mais dans ce cas il faudrait pouvoir modifier chaque élément sans avoir à tout dépiler .... ?

    Donc que doit-je mettre dans mon BeanInfo pour faire tout ça ? Est-ce qu'il faudra forcément que j'utilise un Customizer pour avoir ce que je veux ?


    Merci pour vos réponses.

  7. #7
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Points : 368
    Points
    368
    Par défaut
    Hum... Je crois que tu mélanges tout. Il faut différencier les données, les traitements et l'affichage.

    Pour les données, tu peux faire cela avec une collection alors stop aux questions philosophiques. Pour le traitement, il est d'une simplicité extrême, ça se résume à ajouter ou enlever des éléments de ta collection. Et pour l'affichage il suffit que tu affiches des boîtes de texte selon le nombre d'éléments de la collection.

    PS: Vector est une des seules collection à ne pas utiliser car elle est synchronisée. Je doute que tu veilles de cette fonctionnalité très couteuse.

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    darkxan: je crois au contraire qu'il ne mélange pas. Sa question est bel est bien, comment décrire son bean via beanInfo pour que, quand le bean est utilisé dans un beaneditor (comme ceux de netbeans par exemple), ses propriété soient bien typées.

    Personellement, désolé, çà dépasse mes compétences :p

    Ca devrais peut etre marcher avec List<Images> (typage via des génériques).

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Oui voilà c'est tchize_, c'est purement de l'affichage de mes propriétés que je veux faire.
    Pour rajouter des éléments dans la collection, ya pas de problèmes, c'est juste qu'il me faut un bean qui permettent à un utilisateur lambda de le faire rien qu'avec sa souris et sans notion de code et surtout le plus important avec un nombre variable de champs à remplir .... c'est bel et bien ma question

    Merci pour vos éléments de réponses, si vous avez d'autre idées hésitez pas, je vais essayer avec List<Images> et je vous tiendrais au courant.

Discussions similaires

  1. Somme d'une colonne (avec nombre de rangée variable)
    Par Berny77 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/05/2008, 23h30
  2. Formulaire avec nombre de champ variable
    Par david87 dans le forum IHM
    Réponses: 0
    Dernier message: 21/04/2008, 10h16
  3. Requete paramétrée avec nombre de champs variable
    Par Braillane dans le forum Accès aux données
    Réponses: 3
    Dernier message: 07/02/2008, 23h09
  4. Un script shell avec nombre d'argument variable
    Par lastrecrue dans le forum Linux
    Réponses: 1
    Dernier message: 28/05/2006, 11h35
  5. méthodes avec nombres d'arguments variable
    Par spynux dans le forum Langage
    Réponses: 2
    Dernier message: 26/05/2006, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo