Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/07/2007, à 18:01

sixtie

[Java]Faire une copie d'une JTable

Bonjour,

est-ce que quelqu'un pourrait m'indiquer comment se fait la copie d'une JTable.
En essayant de faire comme ceci :

JTable table = new JTable(4,5);
JTable table2 = table;

Lorsque j'insere ces 2 tables dans une fenetre, il y a seulement table2 qui s'affiche et non table.

Si quelqu'un pouvait me montrer un exemple, ce serait sympa.

Merci

#2 Le 28/07/2007, à 07:37

obiwankennedy

Re : [Java]Faire une copie d'une JTable

en Java, tous les objets sont des références donc quand tu fais ça table et table2 sont les memes et si tu modifies l'une tu modifies l'autre en meme temps.

Maintenant pourquoi il y en a qu'une qui s'affiche, j'aurais besoin de plus de ligne de code.

essaie plutot ceci

JTable table = new JTable(4,5);
JTable table2 = table.clone();

la méthode clone est une méthode de la classe object de java.
essaie avec ça et dit moi ce qui se passe maintenant.


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#3 Le 28/07/2007, à 09:32

sixtie

Re : [Java]Faire une copie d'une JTable

obiwankennedy a écrit :

en Java, tous les objets sont des références donc quand tu fais ça table et table2 sont les memes et si tu modifies l'une tu modifies l'autre en meme temps.

Maintenant pourquoi il y en a qu'une qui s'affiche, j'aurais besoin de plus de ligne de code.

essaie plutot ceci

JTable table = new JTable(4,5);
JTable table2 = table.clone();

la méthode clone est une méthode de la classe object de java.
essaie avec ça et dit moi ce qui se passe maintenant.

Salut,

voici le code que j'ai écrit avec le changement que tu as proposé :

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;


public class Table{
	private static final long serialVersionUID = 1L;
	public static void main(String [] args){
		JTable table = new JTable(4,5);
		JScrollPane scroll = new JScrollPane(table);
		JFrame frame = new JFrame("Initial");			
		frame.setSize(600,250);
		frame.add(scroll);
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JTable table2 = table.clone();
		JScrollPane scroll2 = new JScrollPane(table2);
		JFrame frame2 = new JFrame("Copie");			
		frame2.setSize(600,250);
		frame2.add(scroll2);
		frame2.setVisible(true);
		frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

J'obtiens comme erreur à cette ligne :

JTable table2 = table.clone();
Type mismatch: cannot convert from Object to JTable

donc j'ai écrit la ligne comme ceci :

JTable table2 = (JTable)table.clone();

Et j'obtiens maitenant :

The method clone() from the type Object is not visible

#4 Le 28/07/2007, à 11:55

highflyer

Re : [Java]Faire une copie d'une JTable

Il faut que tu redéfinisse la méthode clone() pour lui faire faire ce que tu veux, par exemple http://ydisanto.developpez.com/tutoriels/j2se/cloneable/