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

Composants Java Discussion :

Plusieurs JCombobox qui affichent une JTable lorsque la sélection d'un seul affiche aussi un JTable


Sujet :

Composants Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Plusieurs JCombobox qui affichent une JTable lorsque la sélection d'un seul affiche aussi un JTable
    Salut tout le monde,
    voilà, je suis entrain de développer un programme de gestion de stock... Le jpanel "recherche" contient quatre jcombobox qui affiche une jtable lorsqu'on sélectionne un ou plusieurs item à la fois.
    c-à-d la jtable affiche en quelque sorte le resultat de la requete sql :"select * from stock where nom_produit='item1' and nom_service='item2' sachant que ces item proviennent respectivement de la jcombobox1 et de la jcombobox2.
    Maintenant sachant qu'il y a quatre jcombobox qui forme ces cas que j'ai représenté sous forme de binaire sachant 0=false:"jcombobox non sélectionner" et 1=true: "jcombobox sélectionner"
    0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111.
    Dans mon programme cela est représenté par des if else if fois 16+3 avec plus de 800 lignes estimées.
    c'est la première fois pour moi de travailler avec autant de else if.

    Q1: Est ce possible ?
    Q2: y a t-il un moyen de travailler avec un algorithme plus simple ??

    Merci d'avance, votre aide me sera précieuse.

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Tu ne charges pas la JTable à partir d'une requête SQL dans une base de données ?
    Parce là, ce serait vraiment plus facile !
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Je pense qu'il cherche à filtrer sa table en fonction des données de ses combobox justement.

    Déjà oublis vite les 20 if-else imbriqué c'est le mal

    C'est pas beau, c'est moche, c'est pas très jojo, c'est chiant à faire, c'est chiant à débugger, et puis .... enfin on a compris quoi

    Le plus simple serait de construire ta requête de base, et d'ajouter les clause WHERE lorsque que c'est nécessaire.

    du style,

    String sqlStatment = "SELECT * FROM stock";

    Si aucun des combos n'est renseigné alors on garde la requête tel quel

    sinon
    sqlStatment += " WHERE ";
    si combo1 renseigné
    sqlStatment += "mon_champ = " + valeurCombo 1

    etc...
    C'est un peu rustique mais ça marche

    Le mieux après serait de créer une classe de combobox customisé qui soit mappé sur le champ à filtrer et qui puisse retourner via une méthode ta clause WHERE avec un truc du style maCombo.getWhereClause() et de construire ta requête comme ça.

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    @Nico2

    La construction à la volée de la requête SQL n'est pas une solution rustique ... c'est la seule solution
    quand on s'adresse à une base de données et qu'on ne sait pas combien de critères vont être choisis par l'utilisateur.

    Cependant, amusons-nous un peu, et imaginons que @Duramite a vraiment une table (en dur !) avec 1500 lignes SANS accès à une base de données.
    Oui, je sais, ce n'est pas raisonnable, mais allons-y !

    Que faire ? (comme dirait Lenine)

    Il existe un système de filtrage des lignes sur les JTable : https://docs.oracle.com/javase/7/doc...RowFilter.html
    Il faudra le combiner avec "andFilter" pour que cela fonctionne sur plusieurs critères.

    Autre possibilité : les données d'une JTable sont stockées dans un tableau d'objets
    Donc on pourrait imaginer avoir un tableau de base avec toutes les données.
    Et seules les données correspondant aux critères sont copiées dans un tableau de travail.
    Enfin ce tableau de travail est appliqué au TableModel pour que seuls les lignes filtrées apparaissent.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

Discussions similaires

  1. afficher une image lorsque l'on survole un mot
    Par abouhafsa dans le forum Débuter
    Réponses: 1
    Dernier message: 04/08/2008, 08h32
  2. Afficher une image lorsque la souris passe sur un lien
    Par 1tox dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 04/02/2008, 09h09
  3. Plusieurs critères qui amènent à une page unique
    Par s-c-a-r-a dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/08/2007, 10h57
  4. Réponses: 3
    Dernier message: 13/11/2006, 20h38
  5. Afficher une image lorsque la souris passe sur un lien
    Par cyrillique dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 18/09/2006, 19h38

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