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 :

[conception][JTextField]Ecouteur


Sujet :

AWT/Swing Java

  1. #1
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut [conception][JTextField]Ecouteur
    Bonjour à tous,

    j'ai un JTextField dans une JDialog modal qui permet de rentrer un N° de série unique (normalement).
    J'aimerais ajouter un Listener me permettant de tester si le N° de qérie entré par l'utilisateur n'existe pas déjà.

    2 possibilités :

    1- Je récupère l'ensemble des N° de série déjà existant dans le constructeur de ma JDialog et je test dès que l'utilisateur quitte mon JTextField.

    2- Je récupère l'ensemble des N° de série déjà existant lors du test sur le JTextField et je test.

    Le but etant que le test soit le plus rapide possible sachant que pour récuperer mes N° de série existant j'ai une boucle For à faire sur un ArrayList contenant des objets, pour récuperer leur N° de série.

    Que feriez-vous ?

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur full-stack
    Inscrit en
    Mai 2002
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur full-stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 46
    Par défaut
    salut,

    Une façon correct serai aussi de faire le test avec la boucle quand l'utilsateur appui sur "ok" de la JDialog. (ce choix dépend du reste du programme...)

    Mais pour moi la question n'est pas tellement"quand faire le test?"
    mais plutot "qu'es qui ralenti ton programme?" si toutefois tu juge ton programme trop lent.

    PS : ta 2eme solution me parrai pas tres claire.
    mais si j'ai bien conpris alors ça me parrai un peu abuser de reconstruire plusieurs fois la même liste.

  3. #3
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    Et dans une base de données, ça vaut pas le coup ??

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur full-stack
    Inscrit en
    Mai 2002
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur full-stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 46
    Par défaut
    tient un aixois?? salut

    pour info: la BDD étant sur le disque dur les acces sont beaucoup plus long que des acces à des objects (RAM).
    Donc (sauf exception ultime .. ) il vaut mieux taper dans la base un minimum de fois et avec des requêtes les plus simples possible.

  5. #5
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Les infos ne sont pas dans une base de données.
    Ou du moins, l'ensemble des données sont instanciées en objets au démarrage de l'appli.
    J'ai donc tous mes objets en mémoire.

    J'ai 2 étapes pour tester :
    1- je récupère tous les N° de série en parcourant un liste d'objets et je stock les N° dans une liste.
    2- je teste le N° de série saisi par l'utilisateur avec la liste de N° récuperés.


    Soit je récupère les N° de série dans ma liste d'objets à la construction de ma fenetre et je n'ai plus qu'un liste à parcourir à la sortie de mon JTextField, soit je fais tout d'un coup au FocusLost() de mon JTextField.

    Vers quoi vous vous tourneriez ?

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur full-stack
    Inscrit en
    Mai 2002
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur full-stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 46
    Par défaut
    Soit je récupère les N° de série dans ma liste d'objets à la construction de ma fenetre et je n'ai plus qu'un liste à parcourir à la sortie de mon JTextField, soit je fais tout d'un coup au FocusLost() de mon JTextField
    Il manque beaucoup d'élément pour une réponse direct ...

    ma réponse:
    si je pars du principe qu'il faut charger la liste des N° uniquement lorsque la liste d'objets change alors:
    ...dans les choix que tu proposes:
    Si, entre 2 focusLost sur le même JTextField, la liste d'objets ne change pas alors ta premiere solution est correct et plus rapide(constuction de la liste dans le constructeur)

    il est plus facile de charger la liste des N° juste apres avoir récupérer la nouvelle liste d'objects.
    par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    toto=chargeListeObjects();
    maClassUI=new MaClassUI(toto);
     
    public class MaClassUI extends JFrame{
        private ArrayList mesNums;
     
        public MaClassUI(ArrayList listObjects){
            mesNums=creerListNums(listObjects);
            //autres traitements
        }
     
        private ArrayList creerListNums(ArrayList mesObjects){
             //boucle et construction de la liste des N°
        }
    }
    c'est peut-etre pas tres clair ?

  7. #7
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    Salut, avtonio

    Je pensais que Regis.C stockait sa liste dans un fichier texte... Pour économiser sa mémoire vive....

    Par conséquent je retire mon amorce de conseil

  8. #8
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Une suggestion, indépendamment du moment quand tu récupères les N° de série. Tu dis que les N° de série sont attachés à des objets, eux-mêmes présents dans une liste. D'autre part (mais je me trompe peut-être), il semblerait que le N° de série soit une information identifiant de manière univoque un objet.
    Dans ce cas, plutôt que d'utiliser un ArrayList pour y stocker tes objets, j'opterais pour une HashMap. Tu redéfinis alors, pour la classe représentative des objets (appelons la Moteur), les méthodes equals() et hashCode(), par ex. si le N° de série est une String :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public boolean equals(Object obj) {
      return obj instanceof Moteur && noSerie.equals(((Moteur) obj).noSerie);
    }
     
    public int hashCode() {
      return noSerie.hashCode();
    }
    Dans ce cas, le problème de perf ne se pose plus...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ecouteur entre JTextField et JPanel
    Par dmfdmf dans le forum 2D
    Réponses: 6
    Dernier message: 09/03/2012, 11h04
  2. ajouter un ecouteur de saisie a un JTextField
    Par simaa dans le forum Composants
    Réponses: 2
    Dernier message: 28/10/2008, 16h28
  3. [Conception] Modele-Vue et Ecouteur
    Par eclesia dans le forum Langage
    Réponses: 5
    Dernier message: 05/04/2007, 08h54
  4. [Conception] Communication entre Ecouteur
    Par loic_86 dans le forum Interfaces Graphiques en Java
    Réponses: 8
    Dernier message: 02/05/2006, 13h04
  5. [Conception] MVC - Déclarer l'écouteur d'evenement dans la vue.
    Par etiennegaloup dans le forum Général Java
    Réponses: 9
    Dernier message: 04/01/2006, 18h50

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