# Tableur comme interface / Java



## macErmite (19 Mars 2006)

A ce jour on m'a expliqué les différentes méthodes pour :

  - Gérer les fichiers textes et notament en partant d'un fichier "tableur",
  - Maitriser la porté des variables tableaux,

J'aimerais maintenant, pour améliorer l'interface entre le programme Java et l'utilisateur, créer une feuille de type tableur pour augmenter ou diminuer les données à compiler.

Apparement on peut utiliser la fonction Jtable, c'est chose faite.

Mais lorsque je compile, avec Xcode, les quelques lignes de code le tableau n'apparait pas. J'ai juste l'apparition d'un menu au haut à gauche avec le nom du tableau.  

Exemple de code :


import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;

public class tableur {

    public static void main (String args[]) {

Object[][] donnees = new Object[10][10];
Object[] entete = new Object [] {"N°","Nature","Rayon de courbure","Matiere"};

DefaultTableModel model = new DefaultTableModel(donnees,entete);


JTable tableurPerso = new JTable(model);


  }

}


Une idées ?


----------



## GrandGibus (19 Mars 2006)

euh vi... il faut que tu mettes ta table dans un conteneur, genre JFrame. ce qui nous donnerait quelque chose du type (attention, pas de vérification syntaxique de faite):


> public static void main (String args[]) {
> Object[][] donnees = new Object[10][10];
> Object[] entete = new Object [] {"N°","Nature","Rayon de courbure","Matiere"};
> DefaultTableModel model = new DefaultTableModel(donnees,entete);
> ...



En gros, on crée un conteneur de premier niveau (JFrame). On lui dit de _terminer le thread Java_ lorsqu'on le ferme (close). Le contenu est un scroll qui contient ta table... et on affiche le tout.

Pour toutes les questions relatives à l'utilisation des compsants Swing, je ne saurais trop te conseiller les excellents tutoriaux de chez Sun comme celui-ci.

Pour les trouver, il suffit de faire un how to use table dans Google.


----------



## macErmite (20 Mars 2006)

Merci pour ta réponse.

Si il s'agit de conteneur, comme des poupées Russes. Est-ce que le tableau peut-être incorporé dans une page Web ??  :mouais:


----------



## GrandGibus (20 Mars 2006)

Pas directement :mouais: !

Si tu veux mettre une interface Java dans une page oueb, il faut que le conteneur de plus haut niveau soit une Applet. 

Attention cependant, les applets doivent être dans certains cas signées (selon l'usage que l'on en fait). 

De plus, si ton programme doit avoir des interactions avec un serveur, cela posera plusieurs soucis (protocole d'accés aux données, cycle de vie de l'applet)... 

Selon les cas, l'option Java WebStart peut être préférable.


----------



## macErmite (19 Septembre 2006)

Bonjour,


à ce jour le tableau fonctionne  

C'est à dire qu'il y a une lecture d'un fichier texte que l'on visualise dans un tableau. Ce tableau est "imprimé" dans un jscroll -> jpanel -> jframe.

Sur une colonne j'ai ajouté la possibilité de modifier une donnée (JComboBox), celle-ci apparaît correctement.
Mais voilà lorsque je choisi une valeur dans la liste du combo ce choix ne reste pas. Lorsque je veux modifier le contenu d'une cellule je peux effacer son contenu mais après avoir appuyer sur enter le choix n'est pas validé. 

Apparemment je doit créer une class du genre :

public class EditorPerso extends AbstractCellEditor implements TableCellEditor { ...

J'ai visité de nombreux sites, mais je ne comprends rien aux explications de ce genre :


http://isis-fish.labs.libre-entreprise.org/api/isis-fish/version2/fr/ifremer/nodb/RegleGestionParameterEditor.html

:rose: 

Pouvez-vous m'aider ?


----------



## GrandGibus (19 Septembre 2006)

Peut-être devrais-tu jeter un coup d'oeuil ICI ?


----------

