IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

Footer dans un JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Par défaut Footer dans un JTable
    Boujour à tous,

    J'essaye désespérément de créer un pied de page toujours visible dans une JTable dans lequel il y aurait des TextFields pour insérer des données dans la table.

    Pour se faire j'ai créé 2 JTable correspondant aux Datas et au Footer de ma table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    JTable mainTable = new JTable(mainTableModel);
    JTable footerTable = new JTable(model, mainTable .getColumnModel());
    panel.add(BorderLayout.CENTER, mainTable);
    panel.add(BorderLayout.SOUTH, footerTable);
    Ce code marche très bien mais le CPU n'apprécie guère.

    Je pense avoir trouvé une solution à cette adresse : http://bugs.sun.com/bugdatabase/view...bug_id=4242646

    mais le problème est que je n'arrive pas a mettre mes JTextField dans le pied de page.

    Quelqu'un aurait-il une idée?
    merci par avance

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Mettre des JComponent dans une JTable n'a aucun sens.

    Il faut utiliser le mécanisme de Renderer/Editor.

    (Et avoir un TableModel qui renvoie true dans la méthode isEditable pour les colonnes qui conviennent).

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bon sinon après lecture du bug, une façon propre de faire est de mettre ta JTable centrale dans un JScollPane, puis d'installer ta seconde JTable (le footer) en tant que Border du Viewport du JScrollPane.

    En utilisant par exemple ceci: http://tips4java.wordpress.com/2009/...ponent-border/

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Par défaut
    Merci sinok pour cette réponse rapide. Je vais lire l'exemple que tu me proposes.

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah en fait l'exemple il est directement dans le rapport de bug en soit...

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Par défaut
    Cela fait un petit moment que je me bats avec les JTable, et j'arrive très bien a utiliser le model, editor et le render, mais la j'avoues qu'il y a quelque chose qui me dépasse.
    Je ne sais pas comment récupérer les valeurs de la dernière ligne de ma table pour la mettre dans le footer.
    J'ai essayé comme tu me dis mais en fait je ne comprends pas tout se qui se passe. Voila se que j'essaye de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    tblBesoin.setModel(new DefaultTableModel(vDatas, vTitle));
    tblBesoin.getModel().addTableModelListener(new BesoinUpdateListener());
     
    Vector<Vector<Object>> vDatasFooter = new Vector<Vector<Object>>();
    Vector<Object> vCol = new Vector<Object>(); 
    for (int i = 0; i < 8; i++) {
    	vCol.add(i);
    }
    vDatasFooter.add(vCol);
     
    JTable tblBesoinFooter = new JTable(vDatasFooter, vTitle);			
    JScrollPane sp = (JScrollPane) tblBesoin.getParent().getParent();
    sp.setBorder((Border) tblBesoinFooter);

Discussions similaires

  1. pb avec un JcheckBox dans un Jtable
    Par hutchuck dans le forum Composants
    Réponses: 4
    Dernier message: 04/11/2005, 09h51
  2. Noms des colonnes ne s'affichent pas dans un JTable
    Par Bourdet dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 07/07/2005, 15h26
  3. [JTable] Cellules multilignes dans un jtable
    Par chesteric31 dans le forum Composants
    Réponses: 15
    Dernier message: 06/06/2005, 14h50
  4. [JTable] couleur de sélection dans une JTable
    Par spoutyoyo dans le forum Composants
    Réponses: 7
    Dernier message: 06/12/2004, 11h43
  5. Sélection d'une ligne dans un JTable
    Par dam21 dans le forum Composants
    Réponses: 3
    Dernier message: 28/07/2004, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo