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 :

Maj JList à partir d'un JButton


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 45
    Par défaut Maj JList à partir d'un JButton
    Bonjour,

    Je suis novice en JAVA, je cherche à mettre à jour une JList par le biais d'un JButton au moyen d'un requête sql.(au départ j'instancie une classe Genclass contenant une Jlist que je souhaite mettre à jour par un bouton Go )

    La requête sql fonctionne correctement, mais l'action sur le JButton me renvoie une série d'erreurs pas très explicite.

    Le pb semble venir de l'interface actionPerformed qui ne permet la maj de la JList lorsque j'appuie sur le bouton "Go".

    Merci de votre aide
    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
    import javax.swing.*;
    import java.awt.GridBagLayout;
    import java.awt.GridBagConstraints;
    import java.awt.Insets;
    import java.awt.Dimension;
    import java.awt.Color;
    import java.util.Vector ;
    import javax.swing.event.*;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.awt.event.MouseListener;
    import java.awt.* ;
    import java.io.*;
    import java.sql.*;
    import oracle.jdbc.driver.*;
    import java.lang.* ;
    import java.util.ArrayList ;
     
    class Genclass extends JPanel implements ActionListener,ListSelectionListener
     
    		{
     
    	JTextArea topTextArea;
        JTextArea bottomTextArea;
        JButton button1, button2;
        final static String newline = "\n";
    	JList liste,listeclasse,Lclasse ;
        JScrollPane listeAvecAscenseur;
        Vector listeItems,ItemClasse ;
        JLabel label,labela,labelb,labeld,labele,labelf,labelg,labelip,labelinst,labelport ;
        JTextField jta,jtc,jtd,jip,jinst,jport ;
    	JPasswordField jtb ;
        String ligne,Requete,Habili,Acti,Modpas,BtDiag ;
    	int status=2 ;
    	int ina ;
    	Checkbox si,sr,sm,sh,sb,su,co,ri,rm,kt,ps,ei,rj,hd,ge,ta,bu,bk,qx,ro,gr,g5,g8,z0 ;
    	String chaine="";
    	String fichier ="c:\\program files\\genclass\\cnx_erasme.param";
    	ArrayList paramcnx =new ArrayList() ;
    	//
    	DefaultListModel model ;
     
     
        public Genclass() {
     
    Vector<String> listeItems = new Vector<String>();
    listeItems.addElement("Aide sur l'outil") ;
    listeItems.addElement("Creation") ;
    listeItems.addElement("Suppression");
    listeItems.addElement("Connaitre les habilitations pour un user");
     
    liste = new JList(listeItems);
    liste.setSelectedIndex(0);
    liste.setVisibleRowCount(1); 
    listeAvecAscenseur = new JScrollPane(liste) ;
    Dimension dimlist = new Dimension(110,55) ;
    listeAvecAscenseur.setPreferredSize(dimlist) ;
    	topTextArea = new JTextArea();
    	topTextArea.setEditable(false);
        JScrollPane topScrollPane = new JScrollPane(topTextArea);
        Dimension preferredSize = new Dimension(850, 200);
        topScrollPane.setPreferredSize(preferredSize);
    	button1 = new JButton("Go");
    	button2 = new JButton("clear") ;
    	label = new JLabel("Login sql") ;
    	jta = new JTextField(25) ;
    	labela = new JLabel("               Mot de passe") ;
    	//jtb = new JTextField(10) ;
    	jtb = new JPasswordField(10) ;
    	labelb = new JLabel("                        Utilisateur a habiliter") ;
    	jtc = new JTextField(30) ;
    	labeld = new JLabel("Email") ;
    	jtd = new JTextField(25) ;
    	labelf = new JLabel("Votre action    ") ;
    	labelg = new JLabel("                 ") ;
     
         labele = new JLabel("    Liste des Habilitations") ;
    	 si = new Checkbox("si",false);
    	 sr = new Checkbox("sr",false);
    	 sm = new Checkbox("sm",false);
    	 sh = new Checkbox("sh",false);
         sb = new Checkbox("sb",false);
    	 su = new Checkbox("su",false);
    	 co = new Checkbox("co",false);
    	 ri = new Checkbox("ri",false);
    	 rm = new Checkbox("rm",false);
    	 kt = new Checkbox("kt",false);
    	 ps = new Checkbox("ps",false);
    	 ei = new Checkbox("ei",false);
    	 rj = new Checkbox("rj",false);
    	 hd = new Checkbox("hd",false);
    	 ge = new Checkbox("ge",false);
    	 ta = new Checkbox("ta",false);
    	 bu = new Checkbox("bu",false);
    	 bk = new Checkbox("bk",false);
    	 qx = new Checkbox("qx",false);
    	 ro = new Checkbox("ro",false);
    	 gr = new Checkbox("gr",false);
    	 g5 = new Checkbox("g5",false);
    	 g8 = new Checkbox("g8",false);
         z0 = new Checkbox("z0",false);
     
    	this.add(button1) ;
    	this.add(button2) ;
        this.add(topScrollPane);
    	this.add(labelf) ;
    	this.add(listeAvecAscenseur) ;
    	this.add(label) ;
    	this.add(jta) ;
    	this.add(labela) ;
    	this.add(jtb) ;
     
    	jta.setEditable(true) ;
    	jtb.setEditable(true) ;
    	jtc.setEditable(true) ;
    	jtd.setEditable(true) ;
     
    	button1.addActionListener(this);
    	button2.addActionListener(this);
     
     liste.addListSelectionListener(this) ;
    //les champs sont gris au demarrage
        jta.setEditable(false) ;
    	jtb.setEditable(false) ;	
    //
    DefaultListModel model = new DefaultListModel();
    JList Lclasse = new JList(model) ;
    this.add(Lclasse) ;	
     
    model.addElement("titi") ;
     
    	}
    	                  public void actionPerformed(ActionEvent e) 
    					    {
    						if (e.getActionCommand() == "Go" )
    						   {
     
    						    Connex_verif() ; 
    						   }
    				       else if (e.getActionCommand() == "clear")
    		                {
    		       topTextArea.setText("") ;
    		                }
    					    }
     
    		              public void valueChanged(ListSelectionEvent evt)
    				   { if (liste.getSelectedIndex() == 0 )
    				      {
    					   jta.setText("") ;
    					   jtb.setText("") ;
     
     
    					   jta.setEditable(false) ;
    					   jtb.setEditable(false) ;
     
     
    					  }
    					  else if (liste.getSelectedIndex() == 1 )
    					  { jta.setEditable(true) ;
    					    jtb.setEditable(true) ;
     
    						Acti ="c" ;
    					  }
    					  else if (liste.getSelectedIndex() == 2 )
    					  { jta.setEditable(true) ;
    					    jtb.setEditable(true) ;
     
    						Acti ="s" ;
    					  }
    				else if (liste.getSelectedIndex() == 3 )
    					  { jta.setEditable(true) ;
    					    jtb.setEditable(true) ;
     
    					  }
     
    				   }		  
     
    // --						   }
    public void Connex_verif()
                         {
    			//Genclass objects ;
    			Statement sStat=null;
                Connection cCon=null; 
    			ResultSet rSet = null;
    					  		       try {
    			InputStream ips=new FileInputStream(fichier); 
    			InputStreamReader ipsr=new InputStreamReader(ips);
    			BufferedReader br=new BufferedReader(ipsr);
    			String ligne;
    			while ((ligne=br.readLine())!=null){
    			   paramcnx.add(ligne) ;
    				//paramcnx.add(ligne.split("=")) ;
    				//System.out.println(ligne);
    				chaine+=ligne+"\n";
    			}
    			br.close(); 
    			String strip  = (String)paramcnx.get(0) ;
    			String strad  = (String)paramcnx.get(1) ;
    			String strpo  = (String)paramcnx.get(2) ;
    			String stripf [] = strip.split("=") ;
    			stripf[1] = stripf[1].trim() ;
    			String stradf [] = strad.split("=") ;
    			stradf[1] = stradf[1].trim() ;
    			String strpof [] = strpo.split("=") ;
    			strpof[1] = strpof[1].trim() ;
     
    			Modpas = new String(jtb.getPassword()) ;   
    			topTextArea.append("**** Liste habilitation Genclass ****" + newline) ;
     
                PreparedStatement prep1	;		
                Class cDriverOracle=Class.forName("oracle.jdbc.driver.OracleDriver");
                Driver dDriverOracle=(java.sql.Driver)cDriverOracle.newInstance();
                DriverManager.registerDriver(dDriverOracle);
    			cCon=DriverManager.getConnection("jdbc:oracle:thin:@" + stripf[1] + ":" + stradf[1] + ":" + strpof[1],jta.getText(),Modpas);
    			String sql = "select distinct type||organisme from u0.U0_UTILISATEUR_HABILITE" ;
    			sStat = cCon.createStatement();
    			rSet =sStat.executeQuery(sql) ;
    			//creation jlist
     
    			while(rSet.next()) 
    			                 {
    							 //model.clear();
                                 model.addElement("titi") ;
     
    					//topTextArea.append(rSet.getString(1) + newline) ;		 
    							 }
     
     
    			                           }
            catch(Exception er) {
    	topTextArea.append("Pb execution ") ;
    	er.printStackTrace() ;
     
    	topTextArea.append(er.getMessage()) ;
    			   }
    finally{
      if(sStat !=null){try{sStat.close();}catch(Exception e){e.printStackTrace();}}
      if(cCon !=null){try{cCon.close();}catch(Exception e){e.printStackTrace();}}
    }
                         }
     
    /*	public class Text
     {   */
    public static void showgui()
      {
      JFrame bt = new JFrame("Habilitation Genclass") ;
      bt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      Container c = bt.getContentPane() ;
      c.setLayout(new BorderLayout()) ;
      Genclass ma = new Genclass() ;
      c.add(ma) ;
      bt.setSize(1000,400) ;
      bt.setVisible(true) ;
      }
      public  static void main(String[] args) {
      javax.swing.SwingUtilities.invokeLater(new Runnable() {
      public void run() {
       showgui() ;
    		    }
    		    });
    		    }
     
     }

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    ce serait peut être utile, justement, de poster ces erreurs.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 45
    Par défaut
    Bonjour Tchize,

    Voici les retours :
    java.lang.NullPointerException
    at Genclass.Connex_verif<Genclass.java:223>
    at Genclass.actionPerformed<Genclass.java.138>


    en fait je compile sous l'emulateur windows ... et je dois re-copier le msg
    est-il possible de rediriger dans un fichier ?

  4. #4
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 45
    Par défaut
    J'ai tout de même réussi à récupérer les erreurs, les voici :
    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
     
    java.lang.NullPointerException
            at Genclass.Connex_verif(Genclass.java:223)
            at Genclass.actionPerformed(Genclass.java:138)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.j
    95)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButt
    a:2318)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButto
    .java:387)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.ja
    )
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicB
    istener.java:236)
            at java.awt.Component.processMouseEvent(Component.java:6267)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
            at java.awt.Component.processEvent(Component.java:6032)
            at java.awt.Container.processEvent(Container.java:2041)
            at java.awt.Component.dispatchEventImpl(Component.java:4630)
            at java.awt.Container.dispatchEventImpl(Container.java:2099)
            at java.awt.Component.dispatchEvent(Component.java:4460)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.jav
    )
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java
     
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:416
            at java.awt.Container.dispatchEventImpl(Container.java:2085)
            at java.awt.Window.dispatchEventImpl(Window.java:2478)
            at java.awt.Component.dispatchEvent(Component.java:4460)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispat
    ad.java:269)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchT
    java:184)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispat
    ad.java:174)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.jav
     
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.jav
     
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

  5. #5
    Membre actif
    Inscrit en
    Avril 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2006
    Messages : 35
    Par défaut
    Bonjour.
    Ta variable model doit être null.

    Elle est référencé a 2 endroits.
    Ligne 41, en tant qu'attribut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DefaultListModel model ;
    Et tu en redéfinie une localement, dans le constructeur de genclass
    ligne 127 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DefaultListModel model = new DefaultListModel();
    JList Lclasse = new JList(model) ;
    this.add(Lclasse) ;
    Dans ta fonction Connex_verif, tu utilise l'attribut (qui n'est a priori pas initialisé).
    Il faudrait, je pense remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DefaultListModel model = new DefaultListModel();
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.model = new DefaultListModel();

  6. #6
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 45
    Par défaut
    Bonjour Croco19,

    Merci pour ta réponse ,super !!!!!!!!! cela fonctionne(au bout d'une semaine d'arrachage de cheveux).

    Par contre, je ne comprends pas pourquoi cela marche, je ne maitrise pas bien les concepts de base du langage .

    Si tu as une idée ...(j'abuse)

  7. #7
    Membre actif
    Inscrit en
    Avril 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2006
    Messages : 35
    Par défaut
    Bonjour.

    En gros tu avais le code suivant.

    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
    class GenClass {
        DefaultModel model; // attribut non initialisé.
     
        public GenClass() {
            DefaultModel model = new DefaultModel(); // variable locale à la fonction qui a le même nom que l'attribut.
     
     
        }
     
        public void Connex_verif() {
             //...
            model.addElement("titi"); // ici tu fais référence a l'attribut model de l'objet, qui n'est pas initialisé.
            // equivalent à un this.model.addElement("titi");
            // ici le "this" est facultatif parce qu'il n'y a pas de variable local nommée "model", et donc pas de problème de confit et/ou de portée de variable.
        }
    }
    Dans ton constructeur,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public GenClass() {
            DefaultModel model = new DefaultModel(); 
            /*ici tu as accès a 2 variables qui ont des nom similaires mais qui sont bien différentes.
           model, la variable local, et this.model l'attribut de classe.
           ici le this est obligatoire, pour faire référence à l'attribut et non la variable locale*/
           // pour initialiser l'attribut il faut donc faire un 
           this.model = new DefaultModel();
           // rem, si tu vires la varibable local "DefaultModel model = new DefaultModel(); "
           // le this redevient facultatif.
        }

    Voilà, j'espère que mon explication est assez clair et sans trop de conneries

  8. #8
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 45
    Par défaut
    J'y vois maintenant plus clair, merci pour toutes ces infos.

    C'est sympa que des personnes plus expérimentées donne de leur temps, c'est de plus en plus rare .

    Bonne continuation

Discussions similaires

  1. Problemes d'ajout dans une JList à partir d'un Jtextfield
    Par elmander dans le forum Général Java
    Réponses: 6
    Dernier message: 26/01/2009, 18h21
  2. MAJ table à partir d'une autre table
    Par crouba dans le forum Requêtes
    Réponses: 1
    Dernier message: 22/07/2008, 13h27
  3. [Débutant] Jlist à partir d'un ficher XML
    Par Nidel dans le forum Composants
    Réponses: 3
    Dernier message: 17/06/2007, 00h48
  4. [PopUP][iframe] problème maj popup à partir d'une iframe
    Par fanchic29 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/03/2006, 18h34
  5. [ADO.NET] MAJ BDD à partir d'un DataSet d'un DataGrid
    Par bart64 dans le forum Accès aux données
    Réponses: 15
    Dernier message: 20/12/2005, 19h16

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