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

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

    Informations forums :
    Inscription : octobre 2017
    Messages : 67
    Points : 48
    Points
    48

    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
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : Algérie

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

    Informations forums :
    Inscription : octobre 2017
    Messages : 67
    Points : 48
    Points
    48

    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/Eclipse RCP
    Inscrit en
    septembre 2009
    Messages
    10 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : septembre 2009
    Messages : 10 419
    Points : 24 869
    Points
    24 869
    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.
    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
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : Algérie

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

    Informations forums :
    Inscription : octobre 2017
    Messages : 67
    Points : 48
    Points
    48

    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/Eclipse RCP
    Inscrit en
    septembre 2009
    Messages
    10 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : septembre 2009
    Messages : 10 419
    Points : 24 869
    Points
    24 869
    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).
    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
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : Algérie

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

    Informations forums :
    Inscription : octobre 2017
    Messages : 67
    Points : 48
    Points
    48

    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
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : Algérie

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

    Informations forums :
    Inscription : octobre 2017
    Messages : 67
    Points : 48
    Points
    48

    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. Redimensionner les colonnes d'une jtable après ajout d'une ligne
    Par Ceubex dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 28/10/2010, 11h58
  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, 16h50
  3. Redimensionner les colonnes de JTable
    Par lamis2009 dans le forum Tables
    Réponses: 1
    Dernier message: 21/06/2009, 03h04
  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, 11h36
  5. List box : Comment redimensionner les colonnes ?
    Par Invité dans le forum IHM
    Réponses: 1
    Dernier message: 26/06/2007, 08h24

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