JTable et addRow()

JTable et addRow() - Java - Programmation

Marsh Posté le 13-01-2004 à 16:11:47    

Je galere pour essayer de trouver comment on rajoute juste une ligne dans une Jtable
En fait c un tableau a double entrée avec initialisation de la premiere ligne, et je veux apres avoir entré certaines informations, construire une nouvelle ligne, sans changer le nombre de colonnes
Y'a bien la méthode addColumn qui existe, ourquoi pas addRow???

Reply

Marsh Posté le 13-01-2004 à 16:11:47   

Reply

Marsh Posté le 13-01-2004 à 16:32:55    

parce que ajouter une colone touche au composant, ajouter une ligne touche uniquement à son modèle.
 
http://java.sun.com/docs/books/tut [...] table.html
 
par la magie du découpage modèle vue hop :
http://java.sun.com/j2se/1.4.2/doc [...] ang.Object[])
 

Code :
  1. DefaultTableModel model = new DefaultTableModel();
  2. JTable table = new JTable(model);
  3. model.addRow(new Object[]{"c1", "c2"});


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 13-01-2004 à 17:26:47    

Mici bien
c tellement le bordel dans javax.swing.table.* que je m'y perds  :sweat:

Reply

Marsh Posté le 13-01-2004 à 18:03:12    

C'est pas le bordel, c'est intrinsèquement complexe, donc les interactions sont complexes. C'est un des composants les plus complexes avec les JTrees à utiliser.
 
En fait les autres aussi sont un peu fins, mais souvent le débutant voit directement les méthodes dans le composant au lieu de voir dans le modèle, ce qui fait des interfaces super lentes et énormes en mémoire, car il y a 15000 modèles par défaut en mémoire, le plus souvent inadaptés au besoin, les données sont copiées à la fois dans le modèle utilisateur et le modèle du composant alors que c'est pas toujours nécessaire etc.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 19-01-2004 à 18:06:17    

J'ai un autre petit probleme :D
 
TheListPlayers est un tableau de string.
 
String[] Ltemp =  new String[TheListPlayers.length+1];
Ltemp[0] = "Mise";
for (int i= 0; i< TheListPlayers.length; i++)
 Ltemp[i+1] = TheListPlayers[i];
   
TheDTableModel = new DefaultTableModel(Ltemp, 2);
ThePointsTable = new JTable(TheDTableModel);
 
apres je rajoute la table dans un container qui s'affiche.
les columnNames n'apparaissent pas :(
 
j'ai essayé  aussi en mettant Ltemp en Object[], pareil

Reply

Marsh Posté le 19-01-2004 à 18:51:08    

T'es sur qu'elle est visible ta JTable ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 19-01-2004 à 19:45:39    

Vi, qd je fais un addRow, ca rajoute bien sur la vue

Reply

Marsh Posté le 19-01-2004 à 23:21:24    

et quand tu utilises le constructeur de JTable auquel on peut passer les noms des colones, ça fonctionne ?


Message édité par nraynaud le 19-01-2004 à 23:21:35

---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 21-01-2004 à 12:53:12    

no marche pas non plus.. :(
 
zarb tout ca

Reply

Marsh Posté le 21-01-2004 à 12:59:20    

et ça http://java.sun.com/docs/books/tut [...] eDemo.java ?
ça te donne un truc comme ça : http://java.sun.com/docs/books/tutorial/figures/uiswing/components/SimpleTableDemo.gif
?
(c'est http://java.sun.com/docs/books/tut [...] table.html le tutorial)


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 21-01-2004 à 12:59:20   

Reply

Marsh Posté le 21-01-2004 à 13:16:42    


oui, j'ai regardé le source pour voir les diff aussi
ba j'ai bien ca mais sans la premiere ligne detitre grise en haut quoi
 
Je vais rajouter un scrollpane


Message édité par aurel le 21-01-2004 à 13:17:57
Reply

Marsh Posté le 21-01-2004 à 13:20:43    

Bon ba ca marche avec un scrollpane
Je vais pas chercher a comprendre :D

Reply

Marsh Posté le 21-01-2004 à 13:30:45    

aurel a écrit :

Bon ba ca marche avec un scrollpane
Je vais pas chercher a comprendre :D

Il faudrait regarder en détail, mais c'est fortement possible que l'entête du tableau soit dans l'êtet custom du scrollpane de façon à ne pas scroller avec le reste. D'ailleur la capture d'écran semble le confirmer.
 
voir :
http://java.sun.com/docs/books/tut [...] lpane.html
pour les détails


---------------
trainoo.com, c'est fini
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed