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

 Java Discussion :

Par où commencer un projet ?


Sujet :

Java

  1. #61
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Citation Envoyé par grfall Voir le message
    je prend koi comme primary key alors????
    Tu ajoutes un champ 'id' auto-incrémenté.

    Citation Envoyé par grfall Voir le message
    je comprend pas bien les index,si tu peux me donner un exemple je crois que sa m'aiderai beaucoup!!!
    Les index permettent d'optimiser les accès.
    Cas typique :
    J'ai une table personne avec un champ 'id' auto incrémenté comme clé primaire et un champ 'nom'. Si je fais une recherche sur le nom (SELECT * FROM personne WHERE nom LIKE 'dupont%') sans index le SGBD va parcourir toute la table pour tester chaque enregistrement. Avec un index qui va se positionner intelligemment à l'endroit (enregistrement) où il est susceptible de trouver un enregistrement et il s'arrêtera intelligemment lorsqu'il aura atteint un endroit (enregistrement) où il sait qu'il ne trouvera plus d'enregistrement satisfaisant la condition.

    Citation Envoyé par Népomucène Voir le message
    Il parle d'optimisation d'accès aux données.
    Il est trop top pour s'en préoccuper, on en est seulement au stade de la maquette.
    La base va très bien fonctionner sans cela pour l'instant.
    Pour moi c'est à faire au moment du design, si je sais que j'accède à une information non pas par son identifiant généré mais par une autre données => il faut créer un index.

    Citation Envoyé par Népomucène Voir le message
    @Nemek
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mettre un label dans une base de données
    Je ne vois pas de quoi tu parles
    Citation Envoyé par Népomucène Voir le message
    Créer une table de d'interventions-types ce qui permet d'y mettre un libellé et un coût standard
    Citation Envoyé par grfall Voir le message
    Ok je vais faire donc toutes les réctifications necessaires au niveau de ma base!!!!
    Pour récupérer la valeur générée, il utiliser la méthode java.sql.Statement.execute(java.lang.String,int) et ensuite java.sql.Statement.getGeneratedKeys().
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  2. #62
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    @Nemek
    Pour moi c'est à faire au moment du design
    -> oui quand on a de l'expérience sur les SGBD,
    -> non dans le cas de grfall qui doit d'abord faire une structure cohérente avant de passer à l'optimisation

    Tes conseils, bien que techniquement corrects, ne sont pas adaptés à un débutant.

    une table d'interventions-types ce qui permet d'y mettre un libellé
    En effet, les utilisateurs qui vivent dans le monde réel, ont besoin de savoir de quelle intervention il s'agit,
    la désignation doit être claire ; un code ne suffit pas.

    Quant à l’internationalisation, grfall n'en a pas parlé.
    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. #63
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    Citation Envoyé par Népomucène Voir le message
    table Equipement :
    - id_equipement varchar(15) : OK si la numérotation de l'équipement existe déjà, sinon il est malin d'utiliser un entier auto-incrémenté
    - il n'y a pas de champs pour enregistrer les capacités d’utilisation
    - je suppose que la date de mise en service = 1ère date de la table "sont_transmis"
    - prix_equi ne doit pas être en varchar (string ?) il faut le mettre en numérique (sinon pb de calcul)


    table Interventions :
    - ajouter un champ descriptif (varchar(2000) par exemple) pour mettre un compte-rendu d'intervention
    - ajouter une date de clôture de l'intervention
    - ajouter un champ varchar(200) indiquant éventuellement une suite à donner (très fréquent)
    - ajouter un champ coût (numérique) qui sera alimenté par une table d'interventions-type (voir plus bas)
    et qui sera modifiable pour chaque intervention

    Créer une table de d'interventions-types ce qui permet d'y mettre un libellé et un coût standard

    D'une façon générale, il vaut mieux pour les ID (clés primaires des tables) de les mettre en entier auto-incrémenté
    comme ça c'est la base MySQL qui s'occupe de créer la clé.
    Dans un environnement multi-utilisateurs, c'est essentiel (il ne faut pas que l'application cliente soit en charge des clés primaires)
    je crois que j'ai reglé ces problémes:
    structure de ma table interventions:
    +--------------------+---------------+------+-----+---------+----------------
    | Field | Type | Null | Key | Default | Extra
    +--------------------+---------------+------+-----+---------+----------------
    | id_intervention | int(11) | NO | PRI | NULL | auto_increment
    | nom_intervention | varchar(20) | YES | | NULL |
    | id_equipement | int(11) | NO | | NULL |
    | date_deb | varchar(25) | YES | | NULL |
    | date_fin | varchar(25) | YES | | NULL |
    | type_intervention | varchar(25) | YES | | NULL |
    | desc_intervention | varchar(2000) | YES | | NULL |
    | suite_intervention | varchar(200) | YES | | NULL |
    | cout_intervention | decimal(10,0) | YES | | NULL |
    +--------------------+---------------+------+-----+---------+----------------

    structure de ma table equipement:
    +------------------+---------------+------+-----+---------+----------------+
    | Field | Type | Null | Key | Default | Extra |
    +------------------+---------------+------+-----+---------+----------------+
    | id_equipement | int(11) | NO | PRI | NULL | auto_increment |
    | nom_equipement | varchar(50) | YES | | NULL | |
    | num_serie | varchar(20) | YES | | NULL | |
    | num_type | varchar(20) | NO | | NULL | |
    | id_fabricant | int(11) | NO | | NULL | |
    | prix_equi | decimal(10,0) | YES | | NULL | |
    | etat_equipement | varchar(20) | YES | | NULL | |
    | date_acquisition | varchar(15) | YES | | NULL | |
    +------------------+---------------+------+-----+---------+----------------+

  4. #64
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    OK. On ne va pas entrer trop dans le détail ;
    on fera des ajustements le moment venu en fonction des besoins.

    Maintenant, avant de passer à la suite, je reviens sur la la table Serie.
    Peux-tu me donner un exemple de données que tu veux y mettre ?
    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/

  5. #65
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    bon je pensais tout simplement que plusieurs équipements pouvaient appartenir a un meme numero de serie;comme j'ai dit avec les telephones portables:EXEMPLE :NOKIA N70
    donc je voulais mettre dans la table serie le numero de serie et le nom de serie,mais si sa n'en vaut pas la peine je peux l'enlever!!!!!

  6. #66
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    Non, c'est très bien.

    J'ai cru un moment que tu voulais y mettre les n° de fabrication des appareils
    (numéro unique par appareil donné par le fabricant).

    Cela dit, comme il reste pas mal de chose à voir,
    vérifie que ceci soit bien indispensable (ne pas alourdir la maquette)
    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/

  7. #67
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    Bon, je suppose que tu as déjà saisis quelques équipements.

    As-tu déjà fait l'écran de saisie de la fiche d'intervention ?
    Elle doit comprendre la date, l'objet et
    surtout un système de recherche de l'équipement sur lequel
    a été effectué la maintenance (JComboBox ou JList par exemple) ?
    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/

  8. #68
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    Citation Envoyé par Népomucène Voir le message
    As-tu déjà fait l'écran de saisie de la fiche d'intervention ?
    Elle doit comprendre la date, l'objet et
    surtout un système de recherche de l'équipement sur lequel
    a été effectué la maintenance (JComboBox ou JList par exemple) ?

    Oui je l'ai fait mais javai pas mis de combobox
    le JComboBox ou Jlist doit contenir qu'elles collections? :les equipements oubien?

  9. #69
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    L'idée c'est que le technicien, au moment de saisir sa fiche d'intervention,
    puisse choisir l'équipement sur lequel il est intervenu dans une "liste déroulante"
    (JList est pour l'instant le meilleur choix, il faudra l'améliorer plus tard,
    car je suppose que le parc d'équipement est grand et la JList ne suffira plus)

    Informatiquement, il faut stocker l'ID de l'équipement dans le champ id_equipement
    de la table des interventions.

    Pour alimenter la JList, la solution classique est donc de créer
    une petite classe "equipement" avec 2 champs :
    - id_equipement (int)
    - nom_equipement (String)
    avec les getter et les setter qui vont bien.
    Tu définis aussi la méthode ToString dans cette classe renvoyant le nom_equipement,
    afin d'afficher correctement l'équipement dans la JList

    Tu fais une requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id_equipement, nom_equipement FROM equipements
    pour remplir un ArrayList<equipement>
    Puis tu remplis ta JList avec l'ArrayList transformée en tableau d'objet (méthode toArray())

    Quand l'utilisateur va cliquer dans la JList, tu récupère l'objet sélectionné
    et avec getId_equipement() tu récupère l'ID que tu pourras passer à la requête de mise à jour de la table interventions.

    Ce système d'appel d'une liste de référence pour renseigner une table d'activité est essentiel.
    Une fois que tu le maîtrise, tu n'as plus de problème pour construire une application
    s'appuyant sur une base de données relationnelle.
    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/

  10. #70
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    J'ai bien compris le principe Népomucène mais le hic c'est que j'arrive pas a le faire!!!!
    dans ma table interventions j'ai bien id_equipement,j'ai aussi creé une JList et j'avais déjà une classe equipement
    maintenant il me tarde a faire la classe qui me permettra d'afficher les donnees de l'equipement dans la JList!!!!!

  11. #71
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    montres-moi :
    - ta classe équipement
    - ce que tu as essayé de faire avec la JList
    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/

  12. #72
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    la classe equipement c'est la ou j'avai mis les getters et le setters:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    
    publicclass Equipement implements Serializable{
    privateintid_equipement;
    private String nom_Equipement;
    publicintnum_serie;
    publicintnum_type;
    publicintid_fabricant;
    privatedoubleprix_equi;
    private String etat_equipement;
    private String date_acquisition;
    publicint getID_equi() {
    returnid_equipement;
    }
    publicvoid setID_Equi(int id_equipement) {
    this.id_equipement = id_equipement;
    }
    public String getNom_equi() {
    returnnom_Equipement;
    }
    publicvoid setNom_equi(String nom_Equipement) {
    this.nom_Equipement = nom_Equipement;
    }
    publicint getNum_serie() {
    returnnum_serie;
    }
    publicvoid setNum_serie(int num_serie) {
    this.num_serie = num_serie;
    }
    publicint getNum_type() {
    returnnum_type;
    }
    publicvoid setNum_type(int num_type) {
    this.num_type= num_type;
    }
    publicint getCode() {
    returnid_fabricant;
    }
    publicvoid setCode(int id_fabricant) {
    this.id_fabricant = id_fabricant;
    }
    publicdouble getPrix() {
    returnprix_equi;
    }
    publicvoid setPrix(double prix_equi) {
    
    this.prix_equi = prix_equi;
    
    }
    public String getETAT_equi(){
    returnetat_equipement;
    }
    publicvoid setETAT_equi(String etat_equipement){
    this.etat_equipement=etat_equipement;
    }
    public String getDATE_acquisition(){
    returndate_acquisition;
    }
    publicvoid setDATE_acquisition(String date_acquisition){
    this.date_acquisition=date_acquisition;
    }
    }
    

  13. #73
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    Ajoute à cette classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            public String toString(){
                return getNom_equi();
            }
    Cette méthode sera automatiquement appelée par JList pour afficher le nom de l'équipement.

    tu reprends ensuite mon post d'hier 10h46 à partir de "Tu fais une requête ..."
    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/

  14. #74
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    j'ai un probleme avec ma JList,c'est la première fois que je l'utilise avec les bases de données,je n'arrive pas à la remplir,voici ma classe:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    package controleur;
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.util.*;
    import modele.*;
    public class FenInterv extends JFrame implements ActionListener
    {
     private JLabel lid_intervention,lnom_intervention,lid_equipement,ldate_deb,ldate_fin,ltype_intervention,ldesc,lsuite,lcout,lequi;
     private JTextField chid_intervention,chnom_intervention,chid_equipement,chdate_deb,chdate_fin,chtype_intervention,chdesc,chsuite,chcout;
     private JList list_equi;
     private JButton eg,qt,back,ff,af,mod,sup;
     private JPanel pan1,pan2,pan3;
     private String[]tequi;     //pour remplir la liste
     private AccesInterv clibd=null;
      private int num;
      private ArrayList liste;
     public FenInterv()
     {
        clibd = new AccesInterv();
          lid_intervention = new JLabel("Identifiant:",SwingConstants.CENTER);
          lnom_intervention= new JLabel("Nom Intervention:",SwingConstants.CENTER);
          lid_equipement= new JLabel("id_equipement:",SwingConstants.CENTER);
          ldate_deb= new JLabel("Date Debut:",SwingConstants.CENTER);
          ldate_fin= new JLabel("Date Fin:",SwingConstants.CENTER);
          ltype_intervention=new JLabel("Type Intervention:",SwingConstants.CENTER);
          ldesc=new JLabel("Descript Intervention:",SwingConstants.CENTER);
          lsuite=new JLabel("Suite Intervention:",SwingConstants.CENTER);
          lcout=new JLabel("Cout Intervention",SwingConstants.CENTER);
          lequi=new JLabel("Equipements:",SwingConstants.CENTER);
     
          chid_intervention = new JTextField(30);
          chnom_intervention=new JTextField(30);
          chid_equipement=new JTextField(30);
          chdate_deb = new JTextField(30);
          chdate_fin= new JTextField(30);
          chtype_intervention=new JTextField(30);
          chdesc=new JTextField(30);
          chsuite=new JTextField(30);
          chcout=new JTextField(30);
    list_equi=new JList();//normalement je devais ecrire new JList(tequi)
            list_equi.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
     
          eg= new JButton("Enregistrer");
          back=new JButton("<<");
          ff = new JButton(">>");
          af = new JButton("Afficher");
          mod = new JButton("Modifier");
          sup = new JButton("Supprimer");
          qt= new JButton("Quitter");
          pan1=new JPanel();
          pan2=new JPanel();
          pan3=new JPanel();
          pan1.setLayout(new GridLayout(0,1));
          pan2.setLayout(new GridLayout(0,1));
          pan1.add(lid_intervention);
          pan1.add(lnom_intervention);
          pan1.add(lid_equipement);
          pan1.add(ldate_deb);
          pan1.add(ldate_fin);
          pan1.add(ltype_intervention);
          pan1.add(ldesc);
          pan1.add(lsuite);
          pan1.add(lcout);
          pan1.add(lequi);
     
          pan2.add(chid_intervention);
          pan2.add(chnom_intervention);
          pan2.add(chid_equipement);
          pan2.add(chdate_deb);
          pan2.add(chdate_fin);
          pan2.add(chtype_intervention);
          pan2.add(chdesc);
          pan2.add(chsuite);
          pan2.add(chcout);
          pan2.add(list_equi);
     
          pan3.add(eg);
          pan3.add(back);
          pan3.add(ff);
          pan3.add(af);
          pan3.add(mod);
          pan3.add(sup);
          pan3.add(qt);
          eg.addActionListener(this);
          qt.addActionListener(this);
          af.addActionListener(this);
          back.addActionListener(this);
          ff.addActionListener(this);
          mod.addActionListener(this);
          sup.addActionListener(this);
          add(pan1,BorderLayout.CENTER);
          add(pan2,BorderLayout.EAST);
          add(pan3,BorderLayout.SOUTH);
          setBounds(300,300,600,200);
          setTitle("Les Interventions");
          setVisible(true);
          num=-1;
     }
     public void actionPerformed(ActionEvent e)
     {
      if (e.getSource()==eg)
      {
       chid_intervention.setEditable(true);
       int vid_intervention=Integer.parseInt(chid_intervention.getText());
       String vnom_intervention=chnom_intervention.getText();
       int vid_equipement=Integer.parseInt(chid_equipement.getText());
                     String vdate_deb=chdate_deb.getText();
       String vdate_fin=chdate_fin.getText();
                     String vtype_intervention=chtype_intervention.getText();
                     String vdesc=chdesc.getText();
                     String vsuite=chsuite.getText();
                     Double vcout=Double.parseDouble(chcout.getText());
     
       Interventions I = new Interventions();
       I.setID_inter(vid_intervention);
       I.setNOM_inter(vnom_intervention);
       I.setID_equi(vid_equipement);
       I.setDATE_deb(vdate_deb);
       I.setDATE_fin(vdate_fin);
                     I.setTYPE_inter(vtype_intervention);
                     I.setDesc(vdesc);
                     I.setSuite(vsuite);
                     I.setCout(vcout);
     
       clibd.ajouterInterv(I);
       chid_intervention.setText("");
       chnom_intervention.setText("");
       chid_equipement.setText("");
       chdate_deb.setText("");
       chdate_fin.setText("");
                     chtype_intervention.setText("");
                     chdesc.setText("");
                     chsuite.setText("");
                     chcout.setText("");
     
       JOptionPane.showMessageDialog(null,"Ajout de l'Intervention effectue dans la base!!! ");
      }
      else
       if (e.getSource()==qt)
       {
        dispose();
        clibd.fermer();
                             new MenuGeneral();
       //System.exit(0);
       }
       else
        if (e.getSource()==af)
        {
         dispose();
         new ListeInterv();
        }
        else
         if (e.getSource()==back)
         {
          chid_intervention.setEditable(false);
          back.setEnabled(true);
          ff.setEnabled(true);
          liste=clibd.obtenirInterv();
          num--;
          if (num<0)
          {
           JOptionPane.showMessageDialog(null,"debut de liste!!!");
           chid_intervention.setText("");
           chnom_intervention.setText("");
           chid_equipement.setText("");
                                                     chdate_deb.setText("");
                                                     chdate_fin.setText("");
                                                     chtype_intervention.setText("");
                                                     chdesc.setText("");
                                                     chsuite.setText("");
                                                     chcout.setText("");
     
           num=-1;
           back.setEnabled(false);
           chid_intervention.setEditable(true);
          }
          else
          {
           Interventions i =(Interventions) liste.get(num);
           chid_intervention.setText(Integer.toString(i.getID_inter()));
           chnom_intervention.setText(i.getNOM_inter());
           chid_equipement.setText(Integer.toString(i.getID_equi()));
           chdate_deb.setText(i.getDATE_deb().toString());
           chdate_fin.setText(i.getDATE_fin().toString());
                                                     chtype_intervention.setText(i.getTYPE_inter());
                                                     chdesc.setText(i.getDesc());
                                                     chsuite.setText(i.getSuite());
                                                     chcout.setText(Double.toString(i.getCout()));
          }
         }
         else
          if (e.getSource()==ff)
          {
           chid_intervention.setEditable(false);
           back.setEnabled(true);
           ff.setEnabled(true);
           liste=clibd.obtenirInterv();
           num++;
           if (num>liste.size()-1)
           {
            JOptionPane.showMessageDialog(null,"Fin de liste !!!");
            num=liste.size();
             chid_intervention.setText("");
                                                             chnom_intervention.setText("");
                                                             chid_equipement.setText("");
                                                             chdate_deb.setText("");
                                                             chdate_fin.setText("");
                                                             chtype_intervention.setText("");
                                                             chdesc.setText("");
                                                             chsuite.setText("");
                                                             chcout.setText("");
     
            ff.setEnabled(false);
            chid_intervention.setEditable(true);
           }
           else
           {
            Interventions i =(Interventions) liste.get(num);
            chid_intervention.setText(Integer.toString(i.getID_inter()));
                                                             chnom_intervention.setText(i.getNOM_inter());
                                                             chid_equipement.setText(Integer.toString(i.getID_equi()));
                                                             chdate_deb.setText(i.getDATE_deb().toString());
                                                             chdate_fin.setText(i.getDATE_fin().toString());
                                                             chtype_intervention.setText(i.getTYPE_inter());
                                                             chdesc.setText(i.getDesc());
                                                             chsuite.setText(i.getSuite());
                                                             chcout.setText(Double.toString(i.getCout()));
           }
          }
          else
           if(e.getSource()==mod)
           {
            chid_intervention.setEditable(false);
            int vid_intervention=Integer.parseInt(chid_intervention.getText());
                                                             String vnom_intervention=chnom_intervention.getText();
                                                             int vid_equipement=Integer.parseInt(chid_equipement.getText());
                                                             String vdate_deb=chdate_deb.getText();
                                                             String vdate_fin=chdate_fin.getText();
                                                             String vtype_intervention=chtype_intervention.getText();
                                                             String vdesc=chdesc.getText();
                                                             String vsuite=chsuite.getText();
                                                             Double vcout=Double.parseDouble(chcout.getText());
     
            Interventions I = new Interventions();
                                                             I.setID_inter(vid_intervention);
                                                             I.setNOM_inter(vnom_intervention);
                                                             I.setID_equi(vid_equipement);
                                                             I.setDATE_deb(vdate_deb);
                                                             I.setDATE_fin(vdate_fin);
                                                             I.setTYPE_inter(vtype_intervention);
                                                             I.setDesc(vdesc);
                                                             I.setSuite(vsuite);
                                                             I.setCout(vcout);
     
            clibd.modifierInterv(I);
            chid_intervention.setText("");
                                                             chnom_intervention.setText("");
                                                             chid_equipement.setText("");
                                                             chdate_deb.setText("");
                                                             chdate_fin.setText("");
                                                             chtype_intervention.setText("");
                                                             chdesc.setText("");
                                                             chsuite.setText("");
                                                             chcout.setText("");
     
            chid_intervention.setEditable(true);
            JOptionPane.showMessageDialog(null,"Modification intervention effectuee dans la base!!! ");
           }
           else
            if (e.getSource()==sup)
            {
             char rep='n';
             String texte;
             texte =JOptionPane.showInputDialog("Supprimer(o/n)?");
             rep=texte.charAt(0);
             String vid_intervention=chid_intervention.getText();
             if (rep=='o' || rep=='O')
             {
              clibd.supprimerInterv(vid_intervention);
              JOptionPane.showMessageDialog(null,"Intervention supprimee de la base !!!");
              chid_intervention.setText("");
                                                                             chnom_intervention.setText("");
                                                                             chid_equipement.setText("");
                                                                             chdate_deb.setText("");
                                                                             chdate_fin.setText("");
                                                                             chtype_intervention.setText("");
                                                                             chdesc.setText("");
                                                                             chsuite.setText("");
                                                                             chcout.setText("");
     
              chid_intervention.setEditable(true);
             }
             else
              JOptionPane.showMessageDialog(null,"Intervention non supprimee de la base");
            }
     
     }
     }

  15. #75
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list_equi.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    déjà ça c'est pas bon, car une intervention ne se fait que sur un seul équipement !

    A part cela, je vois bien que list_equi est créé mais,
    je ne vois aucun endroit où list_equi est rempli.

    Il faut faire une requête, récupérer les valeurs dans un ArrayList et envoyer le tout dans la JList
    selon la procédure que j'ai posté le 05/05/2011 10h46

    si tu ne fais pas ce bout de programme, aucune chance la JList se charge miraculeusement
    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/

  16. #76
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    Il faut faire une requête, récupérer les valeurs dans un ArrayList et envoyer le tout dans la JList
    selon la procédure que j'ai posté le 05/05/2011 10h46
    OUI mais ce bout de code je le met ou???
    dans la classe ou j'ai fait la connection avec la base oubien?
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    package modele;
    import java.sql.*;
    import javax.swing.*;
    import java.util.*;
    //Classe pour la connection avec la Base de Donnees!!! et la creation des Methodes
    public class AccesInterv
    {
    private Connection con=null;
    private PreparedStatement st=null;
    private ResultSet rs=null;
    private ResultSetMetaData meta=null;
     
    //connection avec la Base
    public AccesInterv()
    {
     try
     {
      Class.forName("com.mysql.jdbc.Driver");
      con=DriverManager.getConnection("jdbc:mysql://localhost:3306/GestioNRJ","root","passer" );
     }
     catch(ClassNotFoundException ex)
     {
      System.out.println(ex.getMessage());
     }
     catch(SQLException ex)
     {
      System.out.println(ex.getMessage());
     }
    }
     
    //Ajouter une intervention
        public  void ajouterInterv(Interventions I)
        {
         try
         {
          st=con.prepareStatement("insert into interventions(id_intervention,nom_intervention,id_equipement,date_deb,date_fin,type_intervention,desc_intervention,suite_intervention,cout_intervention) values "+
            "(?,?,?,?,?,?,?,?,?)");
          st.setInt(1,I.getID_inter());
          st.setString(2,I.getNOM_inter());
          st.setInt(3,I.getID_equi());
          st.setString(4,I.getDATE_deb());
          st.setString(5,I.getDATE_fin());
                    st.setString(6,I.getTYPE_inter());
                    st.setString(7,I.getDesc());
                    st.setString(8,I.getSuite());
                    st.setDouble(9,I.getCout());
          st.executeUpdate();
         }
         catch (SQLException ex)
         {
          System.out.println(ex.getMessage());
         }
        }
     
        //Fermer la Fenetre
        public void fermer()
        {
         try
         {
          con.close();
         }
         catch(Exception ex)
         {
          System.out.println(ex.getMessage());
         }
        }
     
        public JTable obtenirListe()
        {
          JTable table=null;
          Vector <String> colonnes ;
          Vector <String> tuple;
          Vector <Vector>  lignes;
          colonnes = new Vector <String> ();
          lignes = new Vector <Vector>();
     
         try
         {
          st = con.prepareStatement("select * from interventions");
          rs= st.executeQuery();
          meta = rs.getMetaData();
          int col = meta.getColumnCount();
          for (int i=1;i<=col;i++)
          {
           colonnes.add(meta.getColumnLabel(i));
          }
          while(rs.next())
          {
           tuple = new Vector<String>();
           for (int i=1;i<=col;i++)
           {
            String champ= rs.getString(i);
            tuple.add(champ);
              }
           lignes.add(tuple);
          }
        table = new JTable(lignes,colonnes);
                  }
         catch(SQLException ex)
         {
          System.out.println(ex.getMessage());
         }
         return table;
    }
     
        //Modifier un Fabricant
        public void modifierInterv(Interventions I)
        {
         try
         {
          st = con.prepareStatement("update interventions set nom_intervention=?,id_equipement=?,date_deb=?,date_fin=?,type_intervention=?,desc_intervention=?,suite_intervention=?,cout_intervention=? where id_intervention=?");
          st.setInt(1,I.getID_inter());
          st.setString(2,I.getNOM_inter());
          st.setInt(3,I.getID_equi());
          st.setString(4,I.getDATE_deb());
          st.setString(5,I.getDATE_fin());
                    st.setString(6,I.getTYPE_inter());
                    st.setString(7,I.getDesc());
                    st.setString(8,I.getSuite());
                    st.setDouble(9,I.getCout());
          st.executeUpdate();
         }
         catch(SQLException ex)
         {
          System.out.println(ex.getMessage());
         }
        }
        //Supprimer un Fabricant
        public void supprimerInterv(String vid_intervention)
        {
         try
         {
          st=con.prepareStatement("delete from interventions where id_intervention=?");
          st.setString(1,vid_intervention);
          st.executeUpdate();
         }
         catch(SQLException ex)
         {
          System.out.println(ex.getMessage());
         }
        }
        //Afficher la Liste des Fabricants
        public ArrayList obtenirInterv()
        {
         ArrayList liste=new ArrayList();
         try
         {
          st = con.prepareStatement("select * from interventions");
          rs=st.executeQuery();
          while(rs.next())
          {
           Interventions I = new Interventions();
           I.setID_inter(rs.getInt("id_intervention"));
           I.setNOM_inter(rs.getString("nom_intervention"));
           I.setID_equi(rs.getInt("id_equipement"));
           I.setDATE_deb(rs.getString("date_deb"));
           I.setDATE_fin(rs.getString("date_fin"));
                            I.setTYPE_inter(rs.getString("type_intervention"));
                            I.setDesc(rs.getString("desc_intervention"));
                            I.setSuite(rs.getString("suite_intervention"));
                            I.setCout(rs.getDouble("cout_intervention"));
     
           liste.add(I);
          }
         }
         catch(SQLException ex)
         {
          System.out.println(ex.getMessage());
         }
     
     
         return liste;
        }
    }

  17. #77
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    Il n'y a pas de règle.
    Tu pourrais tout mettre dans la classe JFrame,
    Tu pourrais le mettre aussi dans la classe où tu fais la connexion ... (mauvaise idée)
    etc ...

    Pour avancer, je te proposes de faire une classe List_equi qui étend la classe JList.
    Dans le constructeur, tu mets tout le code (requête, remplissage, ...)
    ensuite dans ta classe FenInterv
    à la ligne 11 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private List_equi list_equi;
    à la ligne 41 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list_equi=new List_equi()
    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/

  18. #78
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    Sa avance pas de mon coté;
    voici la classe List_equi:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
     
    package controleur;
    import java.sql.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
    import modele.*;
     
     
    public class List_equi extends JList{
        private Connection con=null;
    private PreparedStatement st=null;
    private ResultSet rs=null;
    public List_equi(){
        try
     {
      Class.forName("com.mysql.jdbc.Driver");
      con=DriverManager.getConnection("jdbc:mysql://localhost:3306/GestioNRJ","root","passer" );
     }
     catch(ClassNotFoundException ex)
     {
      System.out.println(ex.getMessage());
     }
     catch(SQLException ex)
     {
      System.out.println(ex.getMessage());
     }
     
    }
      public JList Liste()
        {
          JList List=null;
     
     
         try
         {
          st = con.prepareStatement("select id_equipement,nom_equipement from equipement");
          rs= st.executeQuery();
     
         }
         catch(SQLException ex)
         {
          System.out.println(ex.getMessage());
         }
         return List;
    }
    }

  19. #79
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    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 713
    Par défaut
    Citation Envoyé par grfall Voir le message
    Sa avance pas de mon coté;
    mais si, mais si ... pas vite d'accord, mais quand même

    1) tu es d'accord qu'après le Il y a dans le ResultSet rs la liste de tes équipements.
    pour chaque enregistrements, tu crées un objet de ta classe
    que tu stockes dans un ArrayList

    2) tu remplis ta JList avec l'ArrayList transformée en tableau d'objet (méthode toArray())

    3) vérifie que dans ta classe Equipement tu as bien ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            public String toString(){
                return getNom_equi();
            }
    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/

  20. #80
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Par défaut
    Citation Envoyé par Népomucène Voir le message
    3) vérifie que dans ta classe Equipement tu as bien ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            public String toString(){
                return getNom_equi();
            }
    J'ai bien le code dans la classe Equipement mais je vois pas comment l'utiliser dans la classe List_equi....
    et puis sa s'affiche toujours pas
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
     
      public JList Liste()
        {
              ArrayList liste=new ArrayList();
             JList List=null;
     
     
         try
         {
          st = con.prepareStatement("select id_equipement,nom_equipement from equipement");
          rs= st.executeQuery();
                      while(rs.next()){
                            Equipement E=new Equipement();
                            E.setID_Equi(rs.getInt("id_equipement"));
                            E.setNom_equi(rs.getString("nom_equipement"));
     
           liste.add(E);
     
     
          }
                      List=new JList(liste.toArray());
     
         }
         catch(SQLException ex)
         {
          System.out.println(ex.getMessage());
         }
         return List;
    }
    }

Discussions similaires

  1. par ou commencer un projet?
    Par Pixolovski dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 24/04/2013, 11h52
  2. [Projet] Par où commencer
    Par moithibault dans le forum Général Python
    Réponses: 4
    Dernier message: 05/09/2009, 19h34
  3. Réponses: 3
    Dernier message: 11/07/2008, 11h50
  4. Réponses: 10
    Dernier message: 07/04/2006, 10h03
  5. [Projet]Par quoi commencer ?
    Par Machjaghjolu dans le forum Général Java
    Réponses: 8
    Dernier message: 21/11/2005, 11h08

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