Augmenter la taille d'un tableau

Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,
SVP, je veux savoir la méthode qui permet d'augmenter la taille d'un tableau appartenant à un onglet.

17 réponses

  1. jeanjean_ac Messages postés 32 Statut Membre
     
    Bonsoir,
    Explique un peu plus : de quelle logiciel ou langage parle-tu ?
    0
  2. Utilisateur anonyme
     
    je parle du langage java et du logiciel Eclipse.
    0
  3. jeanjean_ac Messages postés 32 Statut Membre
     
    Tu parle d'une ArrayList ? Dans ce cas c'est la méthode add.

    Ou alors tu parle d'un onglet dans eclipse ?
    0
  4. danimo
     
    Salut,

    La taille d'un tableau est définitive...
    On ne peut donc pas la changer.

    La solution est l'utilisation de la classe ArrayList (import java.util.ArrayList;)

    https://docs.oracle.com/javase/6/docs/api/

    et selectionner la classe ArrayList.

    À défaut on peut toujours créer un nouveau tableau plus grand et copier les éléments du tableau trop petit + les éléments nouveaux mais bon !!!
    (ou plutôt à quoi bon puisque ArrayList existe et depuis java 1.2.)

    Cordialement,

    Dan
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    Salut,
    SVP comment je pourrais utiliser la classe ArrayList pour augmenter la taille de mon tableau car je n'arrive pas à l'afficher
    0
  7. KX Messages postés 19031 Statut Modérateur 3 020
     
    La taille du "tableau" dans une ArrayList est augmenté automatiquement, tu n'as pas vraiment à t'en soucier. Il te suffit d'ajouter des éléments avec add et c'est bon.
    Au besoin tu peux te servir de ensureCapacity mais tu ne devrais pas en avoir besoin.

    Pour l'affichage une simple boucle suffit :

    for (Object o : liste)
        System.out.println(o);

    Si on savait ce que tu essaye de faire exactement avec ton tableau, on pourrait te diriger vers la solution la plus appropriée à ton problème (vrai tableau, ArrayList, ou autre...)
    0
  8. danimo
     
    Re,

    La classe ArrayList ne te permettra pas d'augmenter la taille de ton tableau mais de créer et utiliser un type de tableau (similaire à un tableau classique) de manière plus pratique et surtout sans te préoccuper de la capacité.

    Mais il faut que tu consulte la doc concernant la classe ArrayList.

    Voici une petite démo qui te montrera une partie de ce qu'on peut faire:

    import java.util.ArrayList;
    
       public class ArrayListDemo
       {
          public static void main(String[] args)
          {
             ArrayList<Object> arrL = new ArrayList<Object>();
             
             ArrayList<String> t3 = new ArrayList<String>(); 
        	
             t3.add ("Bonjour");
             t3.add ("Salut");
             t3.add ("xyz");
             t3.add ("salut");
             t3.add ("Salut");
          
          	
             System.out.println("\nContenu de t3: " + t3);
             //ou bien comme un tableau "classique":
             if(t3.size() >0) // noter .size() et non .length()
             {
                for(int i=0;i<t3.size();i++)
                {
                   System.out.println("item " + i + ": " + t3.get(i) + "\n");
                }
             }
             else System.out.println("t3 est vide !!!...");
             
             
             Integer i1 = new Integer(10);
             Integer i2 = new Integer(20);
             Integer i3 = new Integer(30);
             Integer i4 = new Integer(40);
             String str = "Salut";
             
             System.out.println("\nContenu initial de arrL: " + arrL);
             System.out.println("Taille de arrL: " + arrL.size() + "\n");
             
             System.out.println("On ajoute les 3 premiers items:\n"
                + "-i1: " + i1 + "\n"
                + "-i2: " + i2 + "\n"
                + "-str: \"" + str + "\"");
             
          	//ajout des 3 élements
          	
             arrL.add(i1);
             arrL.add(i2);
             arrL.add(str);
             
             System.out.println("\nNouveau contenu de arrL: " + arrL);
             System.out.println("Taille de arrL: " + arrL.size() + "\n");
          
          	//ajout de 6 élements dont un nouveau (i5) et encore (str)
             arrL.add(i1);
             arrL.add(i2);
             arrL.add(i3);
             arrL.add(i4);
             Integer i5 = new Integer(50);
             arrL.add(i5);
             arrL.add(str);
             
             System.out.println("On ajoute 6 items dont 2 nouveaux (i5) et encore (str):\n"
                + "-i1: " + i1 + "\n"
                + "-i2: " + i2 + "\n"
                + "-i3: " + i3 + "\n"
                + "-i4: " + i4 + "\n"
                + "-i5: " + i5 + "\n"
                + "-str: " + str + "\n");
             
             System.out.println("Nouveau contenu de arrL: " + arrL);
             System.out.println("Nouvelle taille de arrL: " + arrL.size() + "\n");
             
          	// L'autre maniere de lister le contenu de l'ArrayList arrL
          	
             System.out.println("Autre maniere de lister le contenu de l'ArrayList arrL:\n");
             for(int i=0;i<arrL.size();i++)
             {
                System.out.println("item " + i + ": " + arrL.get(i) + "\n");
             }
             
          	// Obtenir l'indice d'un item de l'ArrayList arrL
          	
             boolean trouve = false;
             Object obj;
          	
             obj = "Salut";
          // obj = 10;
             int i = 0;
             System.out.println("On recherche l'objet " + obj + ":");
             for(i=0;i<arrL.size();i++)
             {
                if(arrL.get(i).equals(obj))
                {
                   System.out.println("item " + i + ": " + arrL.get(i) + ".");
                   trouve = true;
                }
             }
             System.out.println("");
             if(!trouve)
                System.out.println("L'objet " + obj + " n'existe pas...\n");
          
             // Clonage de arrL avant suppression d'un élément
             Object arrLClone = arrL.clone();
             
             System.out.println("On clone arrL sous le nom arrLClone (save avant remove):");
          	  
             System.out.println("Le clone (arrLClone) de arrL est: " + arrLClone + "\n");
          
          	// Suppression  de l'élément 2 
             arrL.remove(2);
          
             System.out.println("On supprime l'item 2 de arrL:");
            
             System.out.println("Nouveau contenu de arrL: " + arrL);
             System.out.println("Nouvelle taille de arrL: " + arrL.size() + "\n");      
          }
       }
    

    Cordialement,

    Dan
    0
  9. Utilisateur anonyme
     
    Salut,
    Je cherche juste à savoir comment afficher mon tableau sur toute la surface de l'onglet tout en sachant que l'onglet contient un seul tableau.
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Ton onglet c'est quoi ? Tu parles de bibliothèques graphiques ? AWT, Swing ? Quand on parle de tableau en Java c'est des trucs du genre Object[] tab, toi tu parles de quoi ? d'un JTable ?

      Est-ce qu'on est vraiment obligé d'avoir à deviner ce que tu veux pour te répondre ? Pose une question claire et précise, et on te donnera la réponse adaptée ! Et si tu as un début de code donne le nous qu'on l'adapte directement pour répondre à ton problème.
      0
  10. Utilisateur anonyme
     
    Salut,
    je parle de la bibliothèque graphique SWING et du tableau JTable
    Je cherche juste à savoir comment afficher mes 2 tableaux (tableau1 et tableau2)sur toute la surface du panneau jp2 et jp3
    voila le code

    import java.awt.BorderLayout;

    import java.awt.Color;
    import java.awt.Component;
    import java.awt.Dialog;
    import java.awt.Dimension;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.List;

    import java.awt.Container;

    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.lang.reflect.Array;
    import java.util.Vector;

    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTabbedPane;
    import javax.swing.JTable;
    import javax.swing.JTextField;
    import javax.swing.border.EmptyBorder;
    import javax.swing.event.TableModelEvent;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.TableModel;

    public class projet extends JFrame implements ActionListener {

    //créer un bouton
    private JButton jb=new JButton("OK");
    //Les titres des colonnes du tableau1
    String title1[] = {"1", "2", "3","4","5","6"};
    //Les données du tableau1
    Object[][] data1 ={};
    //
    private DefaultTableModel model1;
    private JTable tableau1;

    //Les titres des colonnes du tableau2
    String title2[] = {"1", "2", "3","4"};
    //Les données du tableau2
    Object[][] data2 ={};
    //
    private DefaultTableModel model2;
    private JTable tableau2;
    //
    private JTabbedPane tabPane;

    public projet(){
    //créer le premier tableau
    model1=new DefaultTableModel(data1, title1);
    tableau1 = new JTable(model1);
    //créer le deuxième tableau
    model2=new DefaultTableModel(data2, title2);
    tableau2 = new JTable(model2);
    //créer le conteneur cp
    Container cp=this.getContentPane();
    //créer les paneaux jp1, jp2 et jp3
    JPanel jp1=new JPanel();
    JPanel jp2=new JPanel();
    JPanel jp3=new JPanel();
    //Créer le conteneur d'onglets
    tabPane= new JTabbedPane();
    //ajouter jl au paneau jp1
    jp1.add(jb);
    //ajouter le tableau tableau1 et tableau2 au contentPane dans un scroll
    //Sinon les titres des colonnes ne s'afficheront pas ! !
    jp2.add(new JScrollPane(tableau1));
    jp3.add(new JScrollPane(tableau2));
    //ajouter les paneaux jp1, jp2 et jp3 au conteneur cp
    cp.add(jp1);
    cp.add(jp2);
    cp.add(jp3);
    //ajouter les onglets
    tabPane.addTab("onglet1", jp1);
    tabPane.addTab("onglet2", jp2);
    tabPane.addTab("onglet3", jp3);
    //passer les onglets au contentPane
    this.getContentPane().add(tabPane);
    //définir les couleurs de l'arrière plan du paneau
    jp2.setBackground(Color.GRAY);
    jp3.setBackground(Color.GRAY);
    //définir le titre de la fentre
    this.setTitle("Une application");
    //rendre la fenetre visible
    this.setVisible(true);
    //quitter l'application
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //agrandir l'interface au maximum
    setExtendedState(MAXIMIZED_BOTH);
    //Pour qu'il n'y ai qu'une seule ligne de selectionnable à la fois
    tableau1.setSelectionMode(1);
    //modifier la hauteur de la ligne
    tableau1.setRowHeight(20);
    //Pour ne pas qu'elle s'auto reduise
    tableau1.setAutoResizeMode(0);
    //Barre de titre
    tableau1.setTableHeader(null);
    //agrandir les colonnes du tableau1
    tableau1.getColumnModel().getColumn(0).setPreferredWidth(300);
    tableau1.getColumnModel().getColumn(1).setPreferredWidth(300);
    tableau1.getColumnModel().getColumn(2).setPreferredWidth(300);
    tableau1.getColumnModel().getColumn(3).setPreferredWidth(300);
    tableau1.getColumnModel().getColumn(4).setPreferredWidth(300);
    tableau1.getColumnModel().getColumn(5).setPreferredWidth(300);
    //Pour qu'il n'y ai qu'une seule ligne de selectionnable à la fois
    tableau2.setSelectionMode(1);
    //modifier la hauteur de la ligne
    tableau2.setRowHeight(20);
    //Pour ne pas qu'elle s'auto reduise
    tableau2.setAutoResizeMode(0);
    //Barre de titre
    tableau2.setTableHeader(null);
    //agrandir les colonnes du tableau1
    tableau2.getColumnModel().getColumn(0).setPreferredWidth(300);
    tableau2.getColumnModel().getColumn(1).setPreferredWidth(300);
    tableau2.getColumnModel().getColumn(2).setPreferredWidth(300);
    tableau2.getColumnModel().getColumn(3).setPreferredWidth(300);
    //exécuter la méthode ActionListonner en cliquant sur le bouton
    jb.addActionListener(this);

    }
    public static void main(String[] args) {
    new projet();
    }
    public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub

    }
    }
    0
    1. danimo
       
      Voila ce qu'il se passe quand on appelle pas un chat un chat, un tableau un tableau et une JTable une ... table.
      0
  11. KX Messages postés 19031 Statut Modérateur 3 020
     
    J'ai fait pas mal de ménage dans ton code parce que ça me piquait les yeux...
    L'astuce pour résoudre ton problème c'est d'utiliser setFillsViewPortHeight(true) combiné avec setAutoResizeMode(AUTO_RESIZE_ALL_COLUMNS) avec un Layout adapté.

    Remarque : ce n'est pas le conteneur (la JFrame) qui doit implémenter ActionListener, mais le composant lié à l'action (le JButton)

    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Dimension;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTabbedPane;
    import javax.swing.JTable;
    
    public class Projet extends JFrame
    {
    	private static final long serialVersionUID = 1;
    
    	private final JButton bouton;
    	
    	private final JTable table1;
    	private final JTable table2;
    
    	private final JTabbedPane tabPane;
    	
    	public Projet()
    	{		
    		// Onglet 1
    		////////////
    		
    		JPanel jp1=new JPanel();
    		
    		bouton = new JButton("OK");
    		bouton.addActionListener(new ActionListener () 
            { 
                @Override 
                public void actionPerformed(ActionEvent e) 
                {
                    JOptionPane.showMessageDialog(null,"OK !!!"); // TODO
                } 
            });
    		
    		jp1.add(bouton);
    		
    		// Onglet 2
    		////////////
    		
    		JPanel jp2=new JPanel();
    		jp2.setLayout(new BorderLayout());
    		jp2.setBackground(Color.GRAY);
    		
    		table1 = formaterTable("1","2","3","4","5","6");
    		
    		jp2.add(new JScrollPane(table1));
    		
    		// Onglet 3
    		////////////
    		
    		JPanel jp3=new JPanel();
    		jp3.setLayout(new BorderLayout());
    		jp3.setBackground(Color.GRAY);
    		
    		table2 = formaterTable("1","2","3","4");
    		
    		jp3.add(new JScrollPane(table2));
    		
    		// Onglets
    		///////////
    		
    		tabPane = new JTabbedPane();
    		
    		tabPane.addTab("onglet1", jp1);
    		tabPane.addTab("onglet2", jp2);
    		tabPane.addTab("onglet3", jp3);
    
    		// Application
    		///////////////
    		
    		setTitle("Une application");
    		setSize(new Dimension(400,300));
    		setExtendedState(MAXIMIZED_BOTH);
    		
    		add(tabPane);			
    
    		setVisible(true);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    	
    	private JTable formaterTable(String...columnNames)
    	{
    		JTable table = new JTable(new Object[][] {},columnNames);
    		table.setSelectionMode(1);
    		table.setRowHeight(20);
    		table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
    		//table.setTableHeader(null);
    		table.setFillsViewportHeight(true);
    		return table;
    	}
    	
    	public static void main(String[] args)
    	{
    		new Projet();
    	}
    }
    0
  12. Utilisateur anonyme
     
    Salut,
    Merci beaucoup pour votre réponse, en fin j'ai pu afficher les 2 tableaux (table1 et table2) sur toute la surface de jp1 et jp2 mais j'ai encore 3 soucis
    je n'arrive pas à vider les champs du table1 et table2 après avoir cliquer sur le bouton Ok.
    je n'arrive pas à remplir les lignes de mes 2 tableaux table1 et table2 par les colonnes des 2 tableau r1 et r2 que j'ai créeé dans la mémoire.
    je n'ai pas su comment ajouter à mon application une boite de dialogue qui s'affiche quand l'utilisateur ferme l'application en lui demandant "Voulez-vous fermer l'application" avec les 2 boutons OK et Annuler.
    voila le code que j'ai fait pour vider les champs
    for(int i=0;i<model1.getRowCount();i++)
    tablel1.removeRow(i);
    for(int i=0;i<model2.getRowCount();i++)
    tablel2.removeRow(i);

    voila le code que j'ai fait pour remplir les 2 tableaux: table1 et table2
    //parcourir le tableau r1
    for(int i=0;i<t1;i++){
    //remplir les lignes du tableau model1
    table1.addRow(new Object []{r1[i][0],r1[i][1],r1[i][2],r1[i][3],r1[i][4],r1[i][5]});
    }
    //parcourir le tableau r2
    for(int i=0;i<t2;i++){
    //remplir les lignes du tableau model1
    table2.addRow(new Object []{r2[i][0],r2[i][1],r2[i][2],r2[i][4]});
    }
    Merci d'avance
    0
  13. KX Messages postés 19031 Statut Modérateur 3 020
     
    À défaut d'avoir ton code complet, je vais reprendre partiellement le mien :

    Pour pouvoir modifier les tables tu vas devoir modifier la création des tableaux :

    String r1[][] = new String[][] {...}, r2[][] = new String[][] {...};
    
    table1 = formaterTable(r1,"1","2","3","4","5","6");
    table2 = formaterTable(r2,"1","2","3","4");
    
    private JTable formaterTable(Object[][] rowData, String...columnNames)
    {
        JTable table = new JTable(new DefaultTableModel(rowData,columnNames));
        //...
    }

    Tu pourras également te servir de cette méthode :

    private void ajouter(JTable table, Object[][] rowData)
    { 
    	DefaultTableModel dtm = (DefaultTableModel) table.getModel();
    	for (Object[] row : rowData)
    		dtm.addRow(row);
    }

    Pour effacer les lignes des tables sers toi de ceci dans l'actionPerformed de OK :

    private void effacer(JTable table)
    {
    	DefaultTableModel dtm = (DefaultTableModel) table.getModel();
    	while (dtm.getRowCount()>0)
    		dtm.removeRow(0);
    }

    Concernant la fermeture de l'application, tu dois ajouter un bouton quitter :

    Button quitter = new JButton("Quitter");
    quitter.addActionListener(new ActionListener () 
    { 
        @Override 
        public void actionPerformed(ActionEvent e) 
        {
            int n = JOptionPane.showConfirmDialog(
                null,"Voulez-vous quitter ?","Quitter",JOptionPane.YES_NO_OPTION);
    
            switch(n)
            {
            case JOptionPane.YES_OPTION : System.exit(0);
            case JOptionPane.NO_OPTION : break;
            case JOptionPane.CLOSED_OPTION : actionPerformed(e); break;
            }
    });
    0
  14. Utilisateur anonyme
     
    Salut,
    merci bcp pour votre réponse
    pour les 2 tableaux (table1 et table2) je veux les remplir à partir des 2 tableaux que j'ai créée dans la mémoire
    voila le code que j'ai fait mais malheureusement ça n'a pas marché
    //créer les 2 tableaux S et W dans la mémoire
    String S[][]=new String[1000][6];
    String W[][]=new String[10000][8];

    for(int i=0;i<t1;i++){
    table1.addRow(new Object []{S[i][0],W[i][1],W[i][2],W[i][3]});
    }

    for(int i=0;i<t2;i++){
    table2.addRow(new Object []{W[i][0],W[i][1],W[i][2],W[i][4]});
    }
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Evidemment que ça n'a pas marché, mais je t'ai déjà donné un code qui fait l'ajout.
      En effet on ne peut pas manipuler directement les lignes des JTable, il faut passer par le Model comme je l'ai fait dans les méthodes ajouter et effacer un peu plus haut.

      for(int i=0;i<t1;i++)
      	ajouter(table1,new Object [][] {{S[i][0],W[i][1],W[i][2],W[i][3]}}); 
      
      for(int i=0;i<t2;i++){ 
      	ajouter(table2,new Object [][] {{W[i][0],W[i][1],W[i][2],W[i][4]}});

      Tu peux également modifier légèrement la méthode ajouter, en effet la précédente était faite pour l'ajout de plusieurs lignes en même alors que toi tu veux les ajouter une à une :

      private void ajouter(JTable table, Object...row)
      {
      	((DefaultTableModel) table.getModel()).addRow(row);
      }
      
      for(int i=0;i<t1;i++)
      	ajouter(table1,S[i][0],W[i][1],W[i][2],W[i][3]);
      
      for(int i=0;i<t2;i++){ 
      	ajouter(table2,W[i][0],W[i][1],W[i][2],W[i][4]);

      Remarque : table1 contient 6 colonnes, en conséquence si tu ne lui donnes que 4 objets par ligne, ça risque de planter, rajoute deux objets à la fin pour compléter ta ligne (null ou "" par exemple)
      0
  15. Utilisateur anonyme
     
    Salut,
    non malheureusement, ces méthodes n'ont pas marché car les tableaux restent vides.
    j'ai ajouté 2 colonnes à la table1.
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Est-ce que tu as rempli les tableaux S et W avant d'ajouter les S[i] et W[i] aux tables ?

      Voici mon code de test de la méthode ajouter (la deuxième, celle avec Object...row en paramètre).
      Cela marche très bien avec le reste du code tel que je l'avais mis ici et modifié ici et ici :

      public static void main(String args[])
      {
      	Projet p = new Projet();
      	
      	/*String S[][]=new String[1000][6]; 
      	String W[][]=new String[10000][8]; */
      
      	for(int i=0;i<10;i++)
      		p.ajouter(p.table1,i+1,i+2,i+3,i+4,i+5,i+6); 
      
      	for(int i=0;i<5;i++)
      		p.ajouter(p.table2,i+1,i+2,i+3,i+4);
      }

      Remarque : pour être tout à fait correct, les méthodes ajouter et supprimer devraient être static.
      0
  16. Utilisateur anonyme
     
    Salut,
    je pense que j'ai ce problème parce que j'ai ajouté la méthode formaterTable car avant de l'ajouter, j'ai pu remplir les 2 tableaux (table1 et table2) sans aucun problème
    private JTable formaterTable(String...columnNames)
    {
    JTable table = new JTable(new Object[][] {},columnNames);
    table.setSelectionMode(1);
    table.setRowHeight(20);
    table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
    //table.setTableHeader(null);
    //table.setFillsViewportHeight(true);
    return table;

    }

    Voila le code que j'ai déjà mis pour les remplir et ca marché
    String title1[] = {"1", "2", "3","4","5","6"};
    Object[][] data1 ={};
    private DefaultTableModel model1;
    private JTable table1;
    String title[] = {"1", "2", "3","4",};
    Object[][] data2 ={};
    private DefaultTableModel model2;
    private JTable table2;

    model1=new DefaultTableModel(data1, title1);
    table1 = new JTable(model1);
    model2=new DefaultTableModel(data2, title2);
    table2 = new JTable(model2);

    for(int i=0;i<t1;i++){
    model1.addRow(new Object []{S[i][0],S[i][1],S[i][2],S[i][3],S[i][4],S[i][5]});
    }
    for(int i=0;i<t2;i++){
    model2.addRow(new Object []{W[i][0],W[i][1],W[i][2],W[i][4]});
    }
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      En fait l'erreur vient bien de formaterTable, en effet je l'avais modifié ici car pour accéder au modèle il faut lui définir explicitement à la création de la table :

      Il ne faut pas mettre JTable table = new JTable(new Object[][] {},columnNames);
      mais JTable table = new JTable(new DefaultTableModel(new Object[][] {},columnNames));

      Si tu modifies juste ça, tu pourras utiliser ajouter et supprimer comme je les ai mises plus haut.
      0
  17. Utilisateur anonyme
     
    Oui, ca marché merci bcp, mais le vidage des données de table1 et table2 ne se fait pas. Meme si j'ai utilisé cette méthode
    private void effacer(JTable table)
    {
    DefaultTableModel dtm = (DefaultTableModel) table.getModel();
    while (dtm.getRowCount()>0)
    dtm.removeRow(0);
    }
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Pourtant ce code marche. Par exemple avec le bouton OK :

      bouton.addActionListener(new ActionListener () 
      { 
          @Override 
          public void actionPerformed(ActionEvent e) 
          {
          	effacer(table1);
          	effacer(table2);
              JOptionPane.showMessageDialog(null,"Effacées !!!");
          } 
      });

      Il ne reste alors que l'en-tête des colonnes mais c'est normal.
      0
  18. Utilisateur anonyme
     
    Salut,
    j'ai ajouté cette méthode ca marché merci bcp.
    0