Je cherche depuis longtemps un exemple de mapping JTable <-> fichier.xml
avec mise-à-jour du fichier.xml après édition de la JTable.
Rien trouvé (

J'ai trouvé cette exemple
http://www.airfirst.ch/b2/JTable-Xml.zip
qui affiche dans un JTable les données d'un fichier .CSV. Lorsque au moins une cellule est double-cliquée (même sans modifier son contenu), le programme met-à-jour data.csv

Dans l'exemple du fichier de données datas.csv j'ai ajouté une colonne nommée "CaseàCocher", c'est mon nouveau fichier datas_avec_boolean.csv



1. Comment afficher la colonne CaseàCocher avec des cases à cocher?
2. Comment rendre une colonne non modifiable? (j'ai trouvé

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 public boolean isCellEditable(int rowIndex, int columnIndex) {
     if (1<columnIndex) {//coll.éditable dès la 3ème
            return true;
     } else {
            return false;
     }
 }
3. Comment afficher les colonnes de largeur proportionnelle à leur contenu le plus large (valeur ou nom de colonne)? Comme le serait les colonnes d'un tableau HTML: <table width="100%" > ...

4. De quelle façon judicieuse puis-je modifier les classes DataFileTable.java, DataFileTableModel.java
pour obtenir le même outil fonctionnant avec ce fichier.xml (ci-dessous) ?
- Quelle(s) classe(s) modifier ?
- Quelles méthodes modifier/supprimer/ajouter ?

5.a)
Pour le passage XML -> JTable:
- Faut-il obligatoirement passer par des objects (en utilisant pas ex. http://xstream.codehaus.org )?
C'est-à-dire: XML -> objet -> JTable

5.b) Pour le passage JTable -> XML:
- Est-ce suffisant cette boucle ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
String xml = "";
for(int i = 0; i < jt.getRowCount(); i++)
{
 xml+= "<row number = '" + i + "'>\n";
 for(int j = 0; j < jt.getColCount(); j++)
  {
	  xml+= "       <col number = '" + j + "'>" + jt.getValueAt(i,j) + "</col>";
  }
  xml += "</row>
}
//Then save xml to file.

http://forum.java.sun.com/thread.jsp...sageID=3421374


6. Quel type (il y en a plusieurs en Java) permettant de stocker une date et une heure me conseillez-vous d'utiliser?




fichier.xml

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
<?xml version="1.0" encoding="UTF-8"?>
<!--
Seuls les éléments "name" et "saveit" sont éditables dans la JTable
- name est un champs de saisie (string).
- saveit est une case à cocher (boolean).
-->
<list>
    <stick>
        <name>USB Stick 512 Mo</name><!-- chaine -->
        <saveit>1</saveit><!-- boolean -->
        <id>F5B0-1A6D</id><!-- chaine -->
        <plugedin>0</plugedin><!-- boolean -->
        <creation>20070610 0845</creation><!-- date et heure -->
        <lastBU>20070629 1252</lastBU><!-- date et heure -->
    </stick>
    <stick>
        <name>Clé USB 2 GB</name>
        <saveit>1</saveit>
        <id>B0F5-6F1A</id>
        <plugedin>0</plugedin>
        <creation>20070611 1852</creation>
        <lastBU>20070630 2130</lastBU>
    </stick>
</list>


Merci bien.

Pratique:
toute la Javadoc en 1 seul fichier .CHM
http://www.allimant.org/javadoc/index.php