Précédent   Forum du club des développeurs et IT Pro > Java > Interfaces Graphiques en Java > AWT/SWING
AWT/SWING
Forum d'entraide pour les API Swing et AWT. Avant de poster -> FAQ AWT/SWING
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 05/01/2013, 11h59   #1
karnass
Nouveau Membre du Club
 
Homme kikou
Développeur Java
Inscription : juillet 2012
Messages : 83
Détails du profil
Informations personnelles :
Nom : Homme kikou
Âge : 26
Localisation : Tunisie

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

Informations forums :
Inscription : juillet 2012
Messages : 83
Points : 30
Points : 30
Envoyer un message via Skype™ à karnass
Par défaut Ajout d'une ligne à une JTable à partir d'une autre JTable

Bonjour,
j'essaie d'ajouter une ligne sélectionné d'un jTableB à un autre jTableA mais j'arrive pas.
j'ai un jframe Principale contient un jtableA et bouton Ajouter.
La bouton Ajouter permet d'afficher un Jframe Secondaire qui contient lui meme un jtableB et bouton Valider.
La Boutton Valider contient le code d'ajout d'un ligne selectionné de jtableB à l'autre jtableA.
Code :
1
2
3
4
5
 
Principale  P =  new Principale();
int i = jTableB.getSelectedRow(); 
Object a = jTableB.getValueAt(i, 0);// recuperer le contenu de la selection 
DefaultTableModel roleModel = (DefaultTableModel) P.jTableA.getModel();
il n'accept pas la methode de addRow
c'est un erreur

Aidez-moi SVP et merci
karnass est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 13h56   #2
wax78
Modérateur
 
Avatar de wax78
 
Homme Renaud Warnotte
Développeur informatique
Inscription : août 2006
Messages : 2 142
Détails du profil
Informations personnelles :
Nom : Homme Renaud Warnotte
Âge : 32
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2006
Messages : 2 142
Points : 4 099
Points : 4 099
Envoyer un message via MSN à wax78
Normal, la méthode addRow attends soit :

- un Object[]
- Vector

(voir ici)

or toi tu essayes de lui passer un seul element de type Object.
wax78 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 07/01/2013, 14h10   #3
karnass
Nouveau Membre du Club
 
Homme kikou
Développeur Java
Inscription : juillet 2012
Messages : 83
Détails du profil
Informations personnelles :
Nom : Homme kikou
Âge : 26
Localisation : Tunisie

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

Informations forums :
Inscription : juillet 2012
Messages : 83
Points : 30
Points : 30
Envoyer un message via Skype™ à karnass
Merci pour votre réponse
Vous avez une autre solution concernant mon problème?
karnass est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 18h20   #4
wax78
Modérateur
 
Avatar de wax78
 
Homme Renaud Warnotte
Développeur informatique
Inscription : août 2006
Messages : 2 142
Détails du profil
Informations personnelles :
Nom : Homme Renaud Warnotte
Âge : 32
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2006
Messages : 2 142
Points : 4 099
Points : 4 099
Envoyer un message via MSN à wax78
Je n'ai pas bien dut saisir le problème.

Est-ce que c'est l'équivalent de ceci que tu espère faire :

C'est a dire, copier une ligne entière (celle ou un cellule est sélectionnée) d'un tableau source et la rajouter dans le tableau de destination ?

Si oui, ce code devrait normalement fonctionner dans ce cas, ce n'est que l'application de ce que j'ai dit plus haut. Ce n'est pas le plus propre mais ca fonctionnera.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
JTable jTableSrc = null; // LE tableau source d'ou il faut copier une ligne
JTable jTableDst = null; // Le tableau destination.
 
// Numero de la ligne selectionnée en A
int ligne = jTableSrc.getSelectedRow();
// Crée un objet pour contenir toutes les colonnes de la ligne du tableau source
Object [] linetoadd = new Object[jTableSrc.getColumnCount()];
for (int i = 0; i < jTableSrc.getColumnCount(); i++) {
	// Assigne la valeur dans la case du tableau.
	linetoadd[i]=jTableSrc.getValueAt(ligne, i);
}
 
DefaultTableModel roleModel = (DefaultTableModel) jTableDst.getModel();
// Rajoute la ligne dans le tableau destination
roleModel.addRow(linetoadd);
wax78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2013, 10h40   #5
karnass
Nouveau Membre du Club
 
Homme kikou
Développeur Java
Inscription : juillet 2012
Messages : 83
Détails du profil
Informations personnelles :
Nom : Homme kikou
Âge : 26
Localisation : Tunisie

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

Informations forums :
Inscription : juillet 2012
Messages : 83
Points : 30
Points : 30
Envoyer un message via Skype™ à karnass
Bonjour,
merci pour votre réponse et désolé pour le retard,
votre méthode ça marche à condition que tu vas afficher le tableau Dst par la suite c-a-d on utilise par exmple .
mon problème est différent : je dois pas utiliser l'option .show() car mon tableau destination est déjà affiché.
vous trouverez c-joint une image pour bien comprendre mon problème.
- Le Bouton Valider de jframe Principale contient un code pour afficher le deuxième jframe.- Le bouton Ajouter de la jframe secondaire contient le code qui va faire l'ajouter de ligne du tableau B vers le tableau A.
NB : Le jframe principale est toujours ouvert c-a-d pour chaque sélection dans le tableau B et un clic sur Ajouter , ce ligne sélectionné va être ajouter dans le tableau A.
Exemple : Si je clic sur la première ligne ( 1 , AAA) du tableau B et je clic sur Ajouter , cette ligne doit être automatiquement affiché dans le tableau A.
Images attachées
Type de fichier : png Prin.png (23,0 Ko, 8 affichages)
karnass est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h55.


 
 
 
 
Partenaires

Hébergement Web