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 transposer le resultat d'une requete dans une Table


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Par défaut [JTable]comment transposer le resultat d'une requete dans une Table
    Bonsoir ,
    la question est comment selon un resultat d'une requete afficher les informations dans une JTable mais avec des composants que je choisis moi ,
    par exemple utiliser une checkBox pour un type Boolean , 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
    76
    77
    78
    class ClientsModel extends AbstractTableModel
    {
    	private ResultSetMetaData rsmd;
    	private ResultSet Table;
    	
    	ClientsModel()
    	{
    		String Requete ="SELECT * FROM CLIENT ";
    		try
    		{
    			Table = Variables.stat.executeQuery(Requete);
    			rsmd = Table.getMetaData();
    			}
    		}
    		catch (SQLException e)   { }
    		
    	}
    
    public int getColumnCount() 
    	{
    		try
    		{
    			return rsmd.getColumnCount();
    		}
    		catch (SQLException e)   { return 0 ;}
    		
    	}
    	
    	public int getRowCount() {
    		try
    		{
    			Table.last();
    			return Table.getRow();
    		}
    		catch (SQLException e)   { return 0 ;}
    	}
    	
    	public String getColumnName(int col)
    	{
    		try
    		{
    			return rsmd.getColumnName(col +1);
    		}
    		
    		catch (SQLException e)
    {return "";}
    	}
    	
    	
    	public Object getValueAt(int ligne, int col) 
    	{
    		try
    		{
    			Table.absolute(ligne + 1);
    			return Table.getObject(col +1);
    		}
    		
    		catch (SQLException e) { return null;    }
    	
    	}
    	
    }
    
    public class MonAfficheurCellule implements TableCellRenderer
    	{
    		 JCheckBox Chek = new JCheckBox("",true );
    		 
    
    public Component getTableCellRendererComponent(JTable table, Object value, 
    				 
                      boolean isSelected,boolean hasFocus, int row, int col)
    	{
              if(col==4)if ( (Integer)value == 0 ) Chek.setSelected(true);
    			 else Chek.setSelected(false);
    			 return Chek;
    		 }
    	}
    alors je crée l'afficheur de cellule comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TableClients.setDefaultRenderer(JCheckBox.class,
    clientsModel.new MonAfficheurCellule());
    mais la checkBox ne s'affiche pas à l'écran , et il s'affiche la valeur retourné par la requete qui est 1 ou 0.

    et une autre question au passage , comment mon modele connait que les données que je dois afficher dans la table se trouve dans le champ de type ResulSet Table

    et qu'il doit le reporter sur la JTable , pourtant je n'ai mis aucune instruction notifiant , juste fait la requete dans le constructeur du modele et c tout !
    merci pour vos réponses

  2. #2
    Membre chevronné Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Par défaut
    ça y est j'ai trouvé la faille tout seul comme un grand ,

    il fallait mettre ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TableClients.setCellRenderer(JCheckBox.class,
    clientsModel.new MonAfficheurCellule());
    à la place de ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TableClients.setDefaultRenderer(JCheckBox.class,
    clientsModel.new MonAfficheurCellule());
    mais pour la 2 ème question , est ce que quelqu'un a une réponse ???

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Les resultset ne sont pas des objets faits pour être utilisés directement en tant que modèle.
    Mieux vaut dans ton cas copier le contenu de ton resultSet dans un Object[][] ligne par ligne puis utiliser ce tableau pour le modèle de ta JTable

    Sinon une solution possible: http://www.java2s.com/Code/Java/Swin...tandJTable.htm

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/10/2011, 17h15
  2. [MySQL] une requete dans une requete
    Par Invité dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/08/2011, 09h49
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Réponses: 1
    Dernier message: 06/12/2006, 09h22
  5. Utilisation d'une requete dans une requete update
    Par hellbilly dans le forum Access
    Réponses: 4
    Dernier message: 09/01/2005, 15h09

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