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 :

[JTable]Comment ajouter des JCheckBox


Sujet :

Composants Java

  1. #1
    Membre du Club Avatar de @yoyo
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 53
    Points
    53
    Par défaut [JTable]Comment ajouter des JCheckBox
    salut,
    je développe une interface graphique qui génère un JTable suite à l'appuie sur un bouton. Le problème est que je veux associer à chaque ligne du JTable une case à cocher sachant que le nombre de lignes de ce dernier est variable et dépend de l'exécution.

    Merci pour votre attention

  2. #2
    Membre habitué
    Inscrit en
    Mars 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 137
    Points : 148
    Points
    148
    Par défaut
    va voir de par là bas..


    tu devrais trouver des choses intéressante

    http://<br /> http://crionics.com/p...es2.html<br />[/code]

  3. #3
    Membre du Club Avatar de @yoyo
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 53
    Points
    53
    Par défaut
    Merci pour votre aide je vais essayer avec ça.

  4. #4
    Membre du Club Avatar de @yoyo
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 53
    Points
    53
    Par défaut
    j'ai visiter le site que tu m'as proposé mais c'est loin de ce que j'ai besoin.
    Car le nombre de cases à cocher n'est déterminé qu'au moment de l'exécution de l'application. Merci quand même pour votre aide.

  5. #5
    Membre habitué Avatar de nicgando
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 128
    Points : 163
    Points
    163
    Par défaut
    Tu peux rajouter une colonne pour mettre tes checkBox.
    Dans ta JTable tu mets ton TableCellRenderer et pour la colonne qui t'intéresses tu renvoies des checkBox.
    Et n'oublie pas non plus de setter un editor checkBox aussi pour cette colonne.


    Sinon je crois qu'il y a encore plus facile si ton TableModel renvoie pour la colonne où tu veux mettre des checkBox un type Boolean.class c'est gagné car il y a un renderer et un editor par défaut qui est justement une checkBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     public Class getColumnClass(int col) {
        return Boolean.class;
      }
    Pushing the limits ...

  6. #6
    Membre du Club Avatar de @yoyo
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 53
    Points
    53
    Par défaut
    bonjour
    en fait les checkBox vont servir a supprimer les lignes cochees
    je vais essayer ce que tu m as proposé et merci pour ton aide

    bonne journée

  7. #7
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut
    heu par defaut si tu inseres un Boolean dans ton model, le rendu sera un checkbox .... pas besoin de redefinir un renderer specifique

  8. #8
    Membre du Club Avatar de @yoyo
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 53
    Points
    53
    Par défaut
    bonjour
    bon je crois que je vais donner qques explications concernant ma JTable
    en fait le model de ma JTable lit a partir d'un fichier texte
    la premiere ligne du fichier contient les noms de colonnes les autres lignes sont les donnees

    donc je voudrais comprendre est ce que je dois ajouter un champs dans la premiere ligne qui est booleen et il sera consideré comme checkBox(et ca m'a generé bcp d'exceptions)????
    ou bien faire cela et ajouter une partie de code concernant les checkBox????

    voici mon code plz aidez moi
    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
     
     
    public class DataFileTable extends JPanel{
      public  JTable table;
     // public JCheckBox chec=new JCheckBox();
      public DataFileTable(String dataFilePath) {
              //JTable table;                // le tableau
              DataFileTableModel model;    // le modèle
              //fonte
              Font f=new Font("SanSerif",Font.PLAIN,24);
              setFont(f);
              //gestionnaire de positionnement
              setLayout(new BorderLayout());
              //construction du modèle de remplissage à partir du fichier
              model = new DataFileTableModel(dataFilePath);
              //création du tableau
              table=new JTable();
              table.setModel(model);
     
              table.createDefaultColumnsFromModel();
     
              JScrollPane scrollpane=new JScrollPane(table);
     
              add(scrollpane);
             }
      public DataFileTable(String path,Vector vD, Vector vC){
        JTable table=new JTable(vD,vC);
     
        Font f=new Font("SanSerif",Font.PLAIN,24);
        setFont(f);
        setLayout(new BorderLayout());
        //JScrollPane scrollpane=new JScrollPane(table);
        JScrollPane scrollpane=new JScrollPane(table);
       // scrollpane.add(chec);
        add(scrollpane);
     
     
      }
     
             public Dimension getPreferredSize() {
     
             return new Dimension(400, 300);
            }
     
     
     
     
     
     
     
    }
           class WindowCloser extends WindowAdapter {
                    public void windowClosing(WindowEvent e) {
                     Window win=e.getWindow();
                     //effacer la fenêtre
                     win.setVisible(false);
                     //terminer le programme
                     System.exit(0);
                    }
                   }
    et mon modele est le 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
    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
     
     
    public class DataFileTableModel extends AbstractTableModel{
             protected Vector data;            //données
             protected Vector columnNames ;    //noms de colonnes
             protected String datafile;        //nom du fichier de données
     
             public DataFileTableModel(String f) {
              datafile=f;
              initVectors();
             }
     
             public void initVectors() {
              String ligne;
              data=new Vector();
              columnNames=new Vector();
              try {
               FileInputStream fin=new FileInputStream(datafile);
               BufferedReader br=new BufferedReader(
                new InputStreamReader(fin));
               // lecture des noms de colonnes (1ère ligne)
               ligne=br.readLine();
               StringTokenizer st1=new StringTokenizer(ligne, "#");
               while(st1.hasMoreTokens())
                columnNames.addElement(st1.nextToken());
               // lecture des données
               while ((ligne = br.readLine()) != null) {
                StringTokenizer st2=new StringTokenizer(ligne, "#");
                while(st2.hasMoreTokens())
                 data.addElement(st2.nextToken());
                }
               br.close();
              } catch (Exception e) {
               e.printStackTrace();
              }
             }
             public int getColumnCount() {
             return columnNames.size();
             }
             public int getRowCount() {
              return data.size()/getColumnCount();
             }
             public String getColumnName(int columnIndex) {
              String colName="";
              if (columnIndex<=getColumnCount())
               colName=(String)columnNames.elementAt(columnIndex);
              return colName;
             }
            public Class getColumnClass(int columnIndex){
              return String.class;
             }
             public boolean isCellEditable(int rowIndex, int columnIndex) {
              return true;
             }
     
     
             public Object getValueAt(int rowIndex, int columnIndex) {
              return (String)data.elementAt(
                       (rowIndex*getColumnCount())+columnIndex);
             }
     
     
     
     
    }
    merci pour votre attention

Discussions similaires

  1. Comment ajouter des cases à cocher
    Par @yoyo dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 23/03/2006, 10h16
  2. [dbExpress et mysql] Comment ajouter des connexions ?
    Par servlet1 dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/09/2005, 09h38
  3. Réponses: 3
    Dernier message: 26/01/2005, 15h21
  4. [EXPORT] Comment ajouter des packages au .jar ?
    Par djskyz dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/08/2004, 23h23
  5. [debutant] Comment ajouter des .class ?
    Par Slein dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 30/04/2004, 14h30

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