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 :

redimensionner les colonnes de jtable


Sujet :

Composants Java

  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur en Télécommunication
    Inscrit en
    Octobre 2017
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur en Télécommunication
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2017
    Messages : 121
    Points : 63
    Points
    63
    Par défaut redimensionner les colonnes de jtable
    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
     
    btnRechercher.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
     
     
    				Connection connection;
    			PreparedStatement statement ;
    			      connection = null;
     
     
     
    			      try
    			      {
    			    	 try {
    						Class.forName("org.sqlite.JDBC");//VK_undefined
    					} catch (ClassNotFoundException e) {
    						// TODO Auto-generated catch block 
    						e.printStackTrace();
    					}
    			  connection = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\tosiba\\eclipse-workspace\\training1\\src\\training1\\BDD.db");
     
    			  statement = connection.prepareStatement("SELECT Nom,Prenom,prix_du_loge,Type,N°_du_loge,Etage,Bloc,Versement_total,Versement_restant FROM Client WHERE Nom= ? AND Prenom= ? ");
     
    			  statement.setString(1, comboBox_1.getSelectedItem().toString());
    			  statement.setString(2, comboBox_2.getSelectedItem().toString());
     
    			  ResultSet rs = statement.executeQuery();
     
     
     
    			 table_1.setModel(DbUtils.resultSetToTableModel(rs));
     
     
    				 statement.close();
    				 connection.close();
     
    			      }
     
     
     
     
     
    		catch(SQLException e1)
    		{
     
    		  System.err.println(e1.getMessage());
    		  JOptionPane.showMessageDialog(null, "Ce nom n'existe pas");
     
    		} 
     
    			};
    		});

    j'arrive pas à changer de dimensions à mes colonnes

  2. #2
    Membre du Club
    Femme Profil pro
    Ingénieur en Télécommunication
    Inscrit en
    Octobre 2017
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur en Télécommunication
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2017
    Messages : 121
    Points : 63
    Points
    63
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    scrollPane_1 = new JScrollPane();
    			  scrollPane_1.setBounds(24, 253, 1318, 361);
    			  panel.add(scrollPane_1);
     
    			  table_1 = new JTable();
    			  table_1.setFont(new Font("Tahoma", Font.PLAIN, 13));
    			  table_1.setColumnSelectionAllowed(true);
    			  table_1.setCellSelectionEnabled(true);
    			 scrollPane_1.setViewportView(table_1);

    j'ai pu modifier uniquement la hauteur des lignes avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     table_1.setRowHeight(20);

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Il y a deux aspects qui concernent la largeur des colonnes :

    • le redimensionnement général (automatique ou non, ou seulement la dernière colonne automatique, etc), qui se fait par la méthode setAutoResizeMode() de JTable.
    • l'affectation d'une largeur donnée à une colonne, qui se fait par le modèle de colonne : table.getColumnModel().getColumn( le numéro de colonne). Tu obtiens une instance de TableColumn. Utilise sa méthode setPreferredWidth(int) pour lui donner une largeur préférentielle (en pixels) et setMaxWidth(int) pour une largeur maximum.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Membre du Club
    Femme Profil pro
    Ingénieur en Télécommunication
    Inscrit en
    Octobre 2017
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur en Télécommunication
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2017
    Messages : 121
    Points : 63
    Points
    63
    Par défaut
    j'ai déja utilisé les méthodes que vous venez de me donner, mais ça ne marche pas lorsque j'utilise

    table_1.setModel(DbUtils.resultSetToTableModel(rs)); ( dans le jboutton, le premier code que j'ai publié)

    par contre lorsque j'ai changé "table_1.setModel(DbUtils.resultSetToTableModel(rs)); " par
    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
     
      int b =1;
    				 while(resultat.next())
    				 {
    					 table.setValueAt(resultat.getString("Nom"), b, 0);
    					 table.setValueAt(resultat.getString("Prenom"), b, 1);
    					 table.setValueAt(resultat.getString("Num"), b,3 );
    					 table.setValueAt(resultat.getString("Nom_du_projet"), b,4);
    					 table.setValueAt(resultat.getString("Versement"), b, 2);
    					 table.setValueAt(resultat.getString("idbloc"), b, 5);
     
     
     
     
    				b++;
     
    				 }

    la largeur change mais la table ne se vide lorsque j'effectue une autre recherche.

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par bensh Voir le message
    j'ai déja utilisé les méthodes que vous venez de me donner, mais ça ne marche pas lorsque j'utilise

    table_1.setModel(DbUtils.resultSetToTableModel(rs)); ( dans le jboutton, le premier code que j'ai publié)
    L'affectation des largeurs de colonnes au modèle de colonnes ne fonctionne évidemment que lorsque les colonnes existent. Il faut donc le faire après l'affectation du modèle, surtout si celui-ci détermine le nombre de colonnes.

    Citation Envoyé par bensh Voir le message
    j
    par contre lorsque j'ai changé "table_1.setModel(DbUtils.resultSetToTableModel(rs)); " par
    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
     
      int b =1;
    				 while(resultat.next())
    				 {
    					 table.setValueAt(resultat.getString("Nom"), b, 0);
    					 table.setValueAt(resultat.getString("Prenom"), b, 1);
    					 table.setValueAt(resultat.getString("Num"), b,3 );
    					 table.setValueAt(resultat.getString("Nom_du_projet"), b,4);
    					 table.setValueAt(resultat.getString("Versement"), b, 2);
    					 table.setValueAt(resultat.getString("idbloc"), b, 5);
     
     
     
     
    				b++;
     
    				 }

    la largeur change mais la table ne se vide lorsque j'effectue une autre recherche.
    L'injection de valeurs dans la table ne change pas le modèle. En plus, ta boucle ne modifie pas le nombre de lignes : à moins d'avoir systématiquement le même nombre de résultats à chaque requête, ce n'est pas la bonne manière de procéder. Si les requêtes retournent toujours les mêmes colonnes, tu peux affecter un modèle au départ, et ensuite supprimer toutes les lignes, et dans le while(resultat.next()), tu crées les nouvelles lignes. Par ailleurs, il vaut mieux passer par le modèle pour des setValueAt : les index sont directs, alors que par la table, ils sont indirects (il faudrait passer par les méthodes convertRowIndexToView et convertColumnIIndexToView pour s'assurer que les index soient toujours corrects).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre du Club
    Femme Profil pro
    Ingénieur en Télécommunication
    Inscrit en
    Octobre 2017
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur en Télécommunication
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2017
    Messages : 121
    Points : 63
    Points
    63
    Par défaut
    la table ne se vide pas en faisant un clic sur deux différents jboutton(deux réquêtes différentes qui retournent les résultat dans la même jtable).

  7. #7
    Membre du Club
    Femme Profil pro
    Ingénieur en Télécommunication
    Inscrit en
    Octobre 2017
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur en Télécommunication
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2017
    Messages : 121
    Points : 63
    Points
    63
    Par défaut
    j'ai trouvé la solution
    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
     
     connection = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\tosiba\\eclipse-workspace\\training1\\src\\training1\\BDD.db");
     
    			  statement = connection.prepareStatement("SELECT Nom,Prenom,prix_du_loge,Type,Bloc,Etage,N°_du_loge,Verse_1,Verse_2,Verse_3,Verse_4,Verse_5,Verse_6,Verse_7,Verse_total,Verse_restant FROM Client WHERE Nom= ? AND Prenom= ? ");
     
    			  statement.setString(1, comboBox_1.getSelectedItem().toString());
    			  statement.setString(2, comboBox_2.getSelectedItem().toString());
     
    			  ResultSet rs = statement.executeQuery();
     
    			 table_1.setModel(DbUtils.resultSetToTableModel(rs));
    			 table_1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table_1.getColumn("Nom").setPreferredWidth(120);   
    			 table_1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table_1.getColumn("Prenom").setPreferredWidth(120);   
    			 table_1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table_1.getColumn("Bloc").setPreferredWidth(40);   
    			 table_1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table_1.getColumn("Etage").setPreferredWidth(40);   
     
     
    				 statement.close();
    				 connection.close();

    Merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/10/2010, 10h58
  2. Redimensionner les colonnes et les lignes d'un stringGrid
    Par codial dans le forum Composants VCL
    Réponses: 12
    Dernier message: 29/09/2009, 15h50
  3. Redimensionner les colonnes de JTable
    Par lamis2009 dans le forum Composants
    Réponses: 1
    Dernier message: 21/06/2009, 02h04
  4. Redimensionner les colonnes d'une listview
    Par Gaetch dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/07/2007, 10h36
  5. List box : Comment redimensionner les colonnes ?
    Par Invité dans le forum IHM
    Réponses: 1
    Dernier message: 26/06/2007, 07h24

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