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 :

Gestion des évènements d'un JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 288
    Par défaut Gestion des évènements d'un JTable
    Hello ami(e)s programmeurs !

    Je revient à la charge avec mon problème de JTable, car j'avais mis un peu de côté le temps d'avancer mais là je ne peux continuer sans résoudre cela...

    J'ai réussi à afficher une JTable avec des Check boxes dans les cases comme je le souhaitais. Mais maintenant je sais pas comment gérer les évènements.

    Cas de figure : j'ai la JTable suivante (avec un seul serveur pour simplifier) : http://img385.imageshack.us/img385/8707/jtable8jn.jpg

    Ce que je souhaite faire : lorsque je clique sur un check box,
    - s'il est déjà coché => le décocher,
    - s'il n'est pas coché => le cocher et décocher celui qui était jusqu'alros coché.

    A terme, lorsque l'utilisateur cliqueras sur un certain bouton "Next", je dois savoir quel ont été les check box cochés...

    Voilà j'espère obtenir de l'aide

    Bonne aprM

  2. #2
    Membre éprouvé Avatar de minus
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 153
    Par défaut
    Ben ca c'est une histoire d'objet il me semble... il faut que chacun des tes objets "checkbox" comporte son propre listener afin de savoir si il est coché ou pas.

    Je suis pas un as quand ca commence à se complexifier comme ca donc je ne m'étendrais pas dessus, mais j'ai deja vu pas mal de post parlant de ce genre de problemes quand tu imbriques des objets dans des listes et plusieurs solutions avaient été proposées.
    Je te conseillerais donc de fureter un peu, tu devrais pas avoir de mal à retrouver ces posts ci.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 141
    Par défaut
    Effectivement t'attache un ecouteur a toutes tes checkBox qui decoche systematiquement les autres checkBox de la meme ligne ...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 288
    Par défaut
    oui sur le principe je suis d'accord avec vous, il faut un écouteur par check box...

    Le pti souci est que la construction de ma JTable et donc du nombre de check box est variable. Ce ne sont pas des objets fixes, mais des objets créés dynamiquement en fonction d'un nombre de serveurs passé au constructeur dans un vecteur (je sais pas si c'est bien clair mdr)

    Voici du code pour expliker plus clairement :
    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
    /*******************************************************************************
     *                                                                              *
     *               Class:  XrdIServerTypeTableModel                               *
     *               --------------------                                           *
     *                                                                              *
     *     date     : april   2006                                                  *
     *     version  : 1.0                                                           *
     *     Author   : Jean AOUSTET                                                                                      *
     *                                                                              *
     *     Fonction :                                                                                                                           *
     *                                                                              *
     ********************************************************************************/
     
    import javax.swing.*;
    import javax.swing.JMenuItem.*;
    import javax.swing.event.*;
    import javax.swing.border.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.sql.*;
    import java.util.*;
    import java.text.*;
    import java.io.*;
    import java.lang.*;
    import javax.swing.table.*;
     
     
    // =====  definition of the XrdIServerTypeTableModel class  ====================
    public class XrdIServerTypeTableModel extends AbstractTableModel implements TableModelListener
    {
    	protected Object[][] data;
     
    	protected String[] columnNames = {"Server name", "Data", "Redirector", "Supervisor"};	  // names of the column
     
    	//Object[][] data = new Object[serverAllocated.size()][4];
     
    	public XrdIServerTypeTableModel(Object o)
    	{
    		data = (Object[][])o;
    	}
     
    	/** Nombre de colonnes */
    	 public int getColumnCount()
    	 {
    	 	return columnNames.length;
    	 }
     
     
    	/** Nombre de lignes */
    	public int getRowCount()
    	{
    		return data.length;
    	}
     
    	/** Noms des colonnes */
    	public String getColumnName(int col)
    	{
    		return columnNames[col];
    	}
     
     
    	/** Type de contenu d'une colonne */
    	public Class getColumnClass(int c)
    	{
    		return getValueAt(0, c).getClass();
    	}
     
     
    	/** Possibilité d'édition des données */
    	public boolean isCellEditable(int row, int col)
    	{
    		if((row > 1) || (col > 1))
    		{
    			return true;
    		}
    		else
    		{
    			return false;
    		}
    	}
     
     
    	/** Contenu d'une cellule */
    	public Object getValueAt(int row, int col)
    	{
    		System.out.println(data[row][col]);
     
    		return data[row][col];
    	}
     
     
    	/** Changement du contenu d'une cellule */
    	public void setValueAt(Object value, int row, int col)
    	{
    		data[row][col] = value;
    		fireTableCellUpdated(row, col);
    	}
     
    	public void tableChanged(TableModelEvent e)
    	{
    		int row = e.getFirstRow();
    		int column = e.getColumn();
    		XrdIServerTypeTableModel model = (XrdIServerTypeTableModel)e.getSource();
    		String columnName = model.getColumnName(column);
    		Object data = model.getValueAt(row, column);
     
    		//fireTableChanged(e);
    	}
     
     
    }
     
     
     
     
     
    // ================================ End of the XrdIServerTypeTableModel class  =========================================
    et à l'endroit où je souhaite afficher la JTabel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // Creation of the table with the check boxes
    			JTable table = new JTable(new XrdIServerTypeTableModel(data));
    			JScrollPane scrollPane = new JScrollPane(table, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
    			//JScrollPane scrollPane = new JScrollPane(table);
    			//table.setPreferredScrollableViewportSize(new Dimension(500, 70));
    			scrollPane.setBounds(20, 300, (screen.width)-450, 250);
    			jp.add(scrollPane);
    			table.setVisible(true);
    avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data = new Object[vect.size()][4];
     
    				for(int j = 0; j < vect.size(); j++)
    				{
    					data[j][0] = vect.get(j).toString();
    					data[j][1] = new Boolean(true);
    					data[j][2] = new Boolean(false);
    					data[j][3] = new Boolean(false);
    				}
    Voilà. Alors après si vous pouviez m'expliquer comment attribuer des écouteurs et tout et tout dans mon cas ce serait type top :p

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 141
    Par défaut
    J'arrive pas a voir ou tu ajoutes tes checkBox dans ton code ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    data = new Object[vect.size()][4];
    for(int j = 0; j < vect.size(); j++){
    	data[j][0] = vect.get(j).toString();
    	data[j][1] = new Boolean(true);
    	data[j][2] = new Boolean(false);
    	data[j][3] = new Boolean(false);
    }

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 288
    Par défaut
    ben je passe data en paramètre au constructeur de ma classe XrdIServerTypeTableModel et après les fonctions implémentées crées la JTable...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JTable table = new JTable(new XrdIServerTypeTableModel(data));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public XrdIServerTypeTableModel(Object o)
    	{
    		data = (Object[][])o;
    	}

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 141
    Par défaut
    oui ça j'ai vu
    Mais tu passe a data un String et 3 Boolean, aucun CheckBox ...

    Est-ce moi qui n'est pas les yeux en face des trous aujourd hui ?

Discussions similaires

  1. [XML] [EXPAT] xml_parse et la gestion des événements...
    Par Herode dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/02/2006, 20h59
  2. Gestion des évènements Netscape 7.0
    Par RATHQUEBER dans le forum Autres langages pour le Web
    Réponses: 6
    Dernier message: 19/12/2005, 16h26
  3. Problème avec la gestion des événements
    Par CynO dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 10h07
  4. [JTable] gestion des événements
    Par soulhouf dans le forum Composants
    Réponses: 4
    Dernier message: 19/08/2005, 13h21
  5. Gestion des évènements lors d'un clique sur une image.
    Par yoghisan dans le forum Débuter
    Réponses: 7
    Dernier message: 23/06/2005, 19h04

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