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 :

Perte du contenu JTable


Sujet :

Composants Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 39
    Points
    39
    Par défaut Perte du contenu JTable
    j'ai un programme qui permet d'afficher un JTable à partir d(un vecteur
    ça fonctionne mais le problème est lorsque je clique dans une cellule elle devient vide
    voici mon code

    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
    package teste;
     
     
     
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Vector;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.TableColumn;
     
    import javax.swing.table.AbstractTableModel;
     
    import FENETRE1.Connection1;
    import FENETRE1.Suivi_eleve;
    import FENETRE1.Suivi_eleve.SimpleTableModel;
     
    public class Note1 extends JFrame {
    	 Connection1 coo=new Connection1();
    	    String classe=coo.selectionner_Classe_courant();
    	public Note1(){
     
     
    		Vector vec=coo.select_eleve(classe);
    		Vector vect = new Vector(4,1);
    		affect(vect,vec);
    		 Model model=new Model(vect);
    		JTable table=new JTable(model);
     
    	}
     
    public void tab1(){
     
    	}
     
    public JPanel details(){
     
     
     
        JPanel pan=new JPanel();
     
     
    	Vector vect=coo.select_eleve(classe);
     
     
    	 Model model=new Model(vect);
    	JTable table=new JTable(model);
     
         JScrollPane scrollPane = new JScrollPane(table);
     
         pan.add(scrollPane);
     
     
    return pan;
     
     }	
    public void affect(Vector v1,Vector v2){
    	///v1=new Vector(4,1);
    	for(int i=0;i<v2.size()-1;i+=2){
     
    		String val1=(String)v2.elementAt(i);
    		String val2=(String)v2.elementAt(i+1);
    		String val=val1+" "+val2;
    		v1.add(val);
    		System.out.println(val);
    	}
     
    }
    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
    public class Model extends AbstractTableModel
    {
     
        public static final int    controle1 = 0;
        public static final int    controle2 = 1;
        public static final int    orale = 2;
        public static final int    tp = 3;
        public static final int    synthese = 4;
        public static final int   moyenne= 5;
        public String[] e_colNames = {"Nom et Prenom",
     
        		                     " devoir de Controle N°1",
                                      "devoir de Controle N°2",
                                      "Note Orale",
                                      "Note TP",
                                      "devoir de Synthèse",
                                      "Moyenne trimestrielle"
                                      };
     
        public Class[]  e_colTypes = {String.class,
                                      String.class,
                                      String.class,
                                      String.class,
                                      String.class,
                                      String.class,
                                      String.class,
     
     
                                     };
     
     
     
        Vector eDataVector=new Vector(4,2);;
        String s=new String("");
        int i=0;
     
     
     
        public Model(Vector macDataVector)
        {
            super();
            affect(eDataVector,macDataVector);
            //eDataVector = macDataVector;
        }
     
     
        public int getColumnCount()
        {
            return e_colNames.length;
        }
     
        public int getRowCount()
        {
            return eDataVector.size();
        }
     
        public void setValueAt(Object value, int row, int col)
        {
        	int i=0;
        	if (i<(eDataVector.size()-1)&&(col<=1)){
       			if(col==0);
     
       		 s=(String)eDataVector.elementAt(i);
       		 i++;
     
       	}
     
     
        }
     
     
        public String getColumnName(int col)
        {
            return e_colNames[col];
        }
     
        public Class getColumnClass(int col)
        {
            return e_colTypes[col];
        }
        public Object getValueAt(int row, int col)
        {         
     
     
        	if (i<(eDataVector.size())&& (col==0)){
     
     
       		 s=(String)eDataVector.elementAt(i);
       		i++;
     
       		//System.out.println((String)eDataVector.elementAt(i));
       		}
     
        	else
     
        		s="";
     
     
     
        	 return s; }
     
     
        public boolean isCellEditable(int row, int col) {
            //Note that the data/cell address is constant,
            //no matter where the cell appears onscreen.
            if (col <2) {
                return false;
            } else {
                return true;
            }
        }
     
     
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static void main(String[] arg)
    {
     
    Note1 su=new Note1();
    JPanel panel=su.details();
    JFrame fr=new JFrame("teste");
    fr.add(panel);
    fr.setVisible(true);
    fr.setSize(new Dimension(470, 460));
    fr.validate();
    }
    }
    une solution si c'est possible
    merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2010
    Messages : 270
    Points : 391
    Points
    391
    Par défaut
    Pourrais-tu placer ton code à l'intérieur de balises [CODE]?

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2010
    Messages : 270
    Points : 391
    Points
    391
    Par défaut
    La solution serait peut être de désactiver la sélection de cellules. Regarde du côté de la fonction isCellEditable.

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2010
    Messages : 270
    Points : 391
    Points
    391
    Par défaut
    Citation Envoyé par titou31000 Voir le message
    La solution serait peut être de désactiver la sélection de cellules. Regarde du côté de la fonction isCellEditable.
    Pardon je n'avais pas vu que tu l'avais utilisé dans ton modèle, mais maintenant que tu as mis les balises [CODE] je l'ai vu!! J'ai déjà eu ce soucis et je retourner toujours false avec isCellEditable

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par titou31000 Voir le message
    Pardon je n'avais pas vu que tu l'avais utilisé dans ton modèle, mais maintenant que tu as mis les balises [CODE] je l'ai vu!! J'ai déjà eu ce soucis et je retourner toujours false avec isCellEditable
    je veux que les deux premiers lignes contenant les Nom et les prénoms seront non éditables et les dans les autres je doit saisir les notes c-a-d elle doivent être éditables
    voila la méthode
    iscelleditable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      public boolean isCellEditable(int row, int col) {
     
            if (col <1) {
                return false;
            } else {
                return true;
            }

    normalement le clique n'efface le contenu des cellules

Discussions similaires

  1. Perte du contenu d'une variable
    Par fearless dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2006, 20h43
  2. perte du contenu de la variable
    Par jack2121 dans le forum Langage
    Réponses: 4
    Dernier message: 20/10/2006, 14h20
  3. Perte du contenu d'un résultat d'un recordset
    Par Ricardo_Tubbs dans le forum ASP
    Réponses: 9
    Dernier message: 09/02/2006, 11h34
  4. [TPaintBox] Problème de perte du contenu
    Par Tango dans le forum Composants VCL
    Réponses: 5
    Dernier message: 09/12/2005, 09h56
  5. Perte du contenu des blobs
    Par macakou99 dans le forum Débuter
    Réponses: 10
    Dernier message: 22/05/2003, 15h17

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