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 :

Affichage résultat requête SQL


Sujet :

Composants Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 148
    Points : 69
    Points
    69
    Par défaut Affichage résultat requête SQL
    Bonsoir à tous,

    J'aurais besoin de conseils ...
    Je m'explique. Je débute en java et je suis en train de créer une application que j'ai appelée "Banque Perso".
    En gros, pour la partie qui nous intéresse ici, je me connecte à ma BDD pour obtenir la liste des comptes d'un utilisateur donné. Je souhaiterais pouvoir sélectionner un compte dans la liste pour ouvrir une nouvelle fenêtre contenant des informations propres à ce compte.

    La question que je me pose concerne la façon de présenter cette liste.
    Dans une application web, je me débrouillerais pour rendre chaque compte cliquable. Mais dans mon cas, je ne crois pas que cela soit possible. Alors, j'ai pensé à mettre un bouton radio devant chaque compte et un bouton après la liste, permettant de récupérer la sélection pour ouvrir la fenêtre suivante.
    Est-il possible de faire cela avec une JTable et si oui comment ?
    Sinon, existe-t-il une autre (ou une meilleure) façon de procéder pour arriver à mes fins ?

    J'espère avoir été suffisamment claire. Merci d'avance pour vos réponses.

  2. #2
    Membre habitué
    Avatar de baxou087
    Profil pro
    Développeur COBOL
    Inscrit en
    Mai 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL

    Informations forums :
    Inscription : Mai 2010
    Messages : 49
    Points : 128
    Points
    128
    Par défaut
    Bonsoir,

    Je ne suis pas sur d'avoir tout compris, mais je pense que tu pourrais effectuer cela avec deux JList. L'une te permettant de choisir l'utilisateur en question et la seconde pour choisir le compte que tu désires consulter.

    En récupérant les valeurs sélectionnées par ces deux composants tu serais en mesure de rafraichir une JTable contenant le détail des comptes provenant de ta base de données. Ainsi tu pourra contrôler ton application depuis une seule fenêtre sans avoir obligatoirement besoin d'utiliser des boutons.

    J'espère avoir répondu a ta question.

    Bonne soirée.
    A force de trop vouloir avancer on en oublie d'être idiot

    Ne m'en veuillez pas pour les fautes d'accentuation, mais Qwerty oblige et j'aime Qwerty


    La douleur de la colere ne se situe pas dans la peur, mais plutot dans ce qu'on ne peut accepter.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 148
    Points : 69
    Points
    69
    Par défaut
    En fait, l'utilisateur est déjà identifié via une autre fenêtre utilisée pour le login justement. Une fois identifié, le numéro de l'utilisateur est passé en paramètre pour ouvrir la fenêtre servant à lister ces comptes. Cette fenêtre affiche en haut un label disant "Bienvenue <nom_utilisateur>" et au centre la liste de ses comptes. Je voudrais juste pouvoir sélectionner un compte (en cliquant dessus si c'est possible) ou à défaut, en mettant un bouton radio devant et en utilisant un bouton récupérant la sélection. A moins qu'une autre solution que je ne connais pas, vu mon inexpérience, existe. Je n'ai pas envie de me lancer dans un code s'il y a une meilleure façon de faire. Je ne suis même pas sure que la JTable ou la JListe soit la plus adaptée. Comme je débute, je découvre chaque composant en l'utilisant.
    J'espère avoir pu préciser les choses. Merci pour ta réponse en tous cas.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 148
    Points : 69
    Points
    69
    Par défaut
    Je viens de consulter l'aide en ligne de Sun (je n'avais pas le temps hier soir). Je pense pouvoir me débrouiller avec une JTable. Visiblement, on peut sélectionner une ligne ou une cellule dans la table. Je suppose que l'on peut récupérer la sélection de cette façon. Je vais me pencher dessus mais cela semble être adapté à ce que je souhaite faire. Merci de m'avoir lue.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Points : 422
    Points
    422
    Par défaut
    La JList me semble le meilleur choix dans ton cas.
    La JTable serait aussi un bon choix, mais c'est un peu plus compliqué à gérer.

    Pour simplifier la gestion de ta JList et de ta base de donnée, je te conseil de :
    1. créer des class "model" pour chaque table de ta base de donnée.
    (attributs private correspondants aux colonnes de ta table, constructeur, getter et setter pour chaque attribut). Si les modèles sont bien fait, ca simplifie la vie par la suite.
    2. de surcharger toString() afin d'avoir une gestion d'affichage de ta JList facile. (par la suite tu pourras améliorer la visualisation dans la JList en créant ton propre renderer, mais pour débuter, le toString() est vraiment simple)
    3. Ensuite tu pourras gérer dans ta JList les listeners et le nombre de clic souris afin d'ouvrir un nouvelle fenêtre suite à une double clic sur une des lignes de ta JList.

    Une fois identifié, le numéro de l'utilisateur est passé en paramètre pour ouvrir la fenêtre servant à lister ces comptes.
    Pour ce point, au lieu de passer l'utilisateur en paramètre, je te conseil autre chose. En effet tu risques avoir besoin de cet utilisateur à de nombreux endroit dans ton code, et tu vas devoir le mettre en paramètre un peu partout. Je te propose donc d'ajouter à ta class Utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public static Utilisateur utilisateur_actif = null;
     
    // Au moment du login de l'utilisateur, tu l'enregistres dans ce champs (depuis n'importe quel class)
    Utilisateur.utilisateur_actif = xxxxx;
     
    // et tu pourras ainsi le consulter de partout sans avoir à ajouter des paramètres dans toutes tes class.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 148
    Points : 69
    Points
    69
    Par défaut
    Pfiou, j'avoue que je viens de passer la journée à me prendre la tête avec cette saleté de JTable . Je veux faire un truc tout simple pour l'instant, j'améliorerai plus tard.
    J'ai un peu regardé l'aide de Sun sur les JList et je ne crois pas que ce soit le composant adapté à ce que je veux faire.
    Au final, après améliorations, la requête devra ramener le numéro, le libellé et le solde de chaque compte. J'aurai besoin d'en-têtes pour présenter le résultat à l'utilisateur. Il ne me semble pas avoir vu une telle présentation avec une JList.
    Quant à la JTable, pour l'instant, je voudrais ne pas trop entrer dans les détails (j'absorbe un nombre impressionnant d'informations ces derniers jours alors ça commence à se bousculer dans ma tête, j'ai l'impression de ne pas assimiler tous les nouveaux concepts que j'aborde). Je veux faire quelque chose de très simple, tant pis si c'est moche et si de nombreuses fonctionnalités courantes ne sont pas utilisées. Je veux partir du plus simple pour apprendre les concepts un peu plus compliqués par la suite.
    Bref, pour l'instant, j'ai une JTable présentant le résultat de ma requête (sans le solde pour l'instant) et j'arrive à faire en sorte que l'utilisateur ne puisse sélectionner qu'une seule ligne à la fois. Maintenant, je veux récupérer le numéro de compte de la ligne sélectionnée. Je suppose qu'il faut un listener mais cela fait partie des concepts très flous pour moi. Je ne m'en suis servie que pour un bouton jusqu'à présent.
    Comment dois-je m'y prendre ?

    P.S. : J'ai lu un tutoriel Java qui abordait la JTable mais il présente des choses compliquées comme mettre des boutons dans les cellules, utiliser des TableModel (j'aimerais éviter de m'en servir pour l'instant), etc. J'avoue que je n'ai pas réussi à suivre. Aidez-moi please ...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Points : 422
    Points
    422
    Par défaut
    Tu peux utiliser le MouseListener sur ta JTable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    		table.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				// Double click
    				if(e.getClickCount()==2){
    					// ton code
    				}
    			}
    		});
    et pour récupérer l'objet présent dans ta cellule tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonType element = (MonType)table.getModel().getValueAt(table.getSelectedRow(), table.getSelectedColumn());
    Garde courage, c'est normal que tu rames un peu, le JTable est pas le composant le plus facile à aborder.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 148
    Points : 69
    Points
    69
    Par défaut
    Merci beaucoup pour ta réponse Caalador. Ca fonctionne parfaitement. C'est exactement ce que je voulais. Je vais aller fouiner du côté du MouseListener pour comprendre ce code comme il se doit et pouvoir le réutiliser en l'adaptant à mes futurs besoins. Et merci aussi pour tes encouragements, ça fait plaisir !

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

Discussions similaires

  1. [2.x] Affichage résultat requête SQL avec Twig
    Par madone dans le forum Symfony
    Réponses: 11
    Dernier message: 18/11/2014, 18h31
  2. [MySQL] Affichage résultat requête SQL dans page HTML comme un tableau
    Par joxbl dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/03/2011, 14h26
  3. [SQL] Affichage résultat requête sur 5 colonnes
    Par tondeuz dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 18/06/2007, 16h14
  4. [SQL] Soucis d'affichage de requête SQL
    Par kilkikou dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 06/06/2006, 16h25
  5. [SQL] Affichage résultat requête dans un tableau, bouton affichage page
    Par megapacman dans le forum PHP & Base de données
    Réponses: 35
    Dernier message: 18/05/2006, 16h42

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