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 :

jTable et pagination


Sujet :

Composants Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 168
    Par défaut jTable et pagination
    Bonjour, j'ai une requête qui me ramene 100 items, je place le contenu dans une jTable.
    Je souhaiterais faire un systéme de pagination, lire et afficher les 20 premiers items ,pouvoir avancer et reculer dans la jTable et afficher dés le départ le nombre d'items de ma requête.
    Je souhaite savoir s'il existe un composant pour faire cela ? ou bien faut il le faire à la main et à un petit exemple serait le bien venu
    merci

  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
    Grosso merdo il faut se débrouiller comme si tu voulais implémenter le filtra ou le triage d'une table, cad intercaler un modèle intermèdiaire entre le modèle contenant tes données et la JTable.

    Ce modèle aura pour but de traduire les données à afficher.

    ça donnerait quelquechose dans ce style:

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    import javax.swing.table.AbstractTableModel;
    import javax.swing.table.TableModel;
     
    /**
    *@author Sébastien Cabane
    *
    */
    public class PageModel extends AbstractTableModel {
        private int pageSize = 0;  //nombre de ligne dans une page
        private int currentPage = 0; //La page actuelle
        private TableModel delegate; //Le TableModel contenant les données
     
        public PageModel (TableModel delegate, int pageSize, int currentPage) {
            this.delegate = delegate;
            this.pageSize = pageSize;
            this.currentPage = currentPage;        
        }
     
        //méthodes de l'interface TableModel
     
        public int getRowCount () {
            return pageSize;
        }
     
        public int getColumnCount () {
            return delegate.getColumnCount();
        }
     
        public Class getColumnClass (int i) {
            return delegate.getColumnClass(i);
        }
     
        public String getColumnName (int i) {
            return delegate.getColumnName(i);
        }
     
        public Object getValueAt (int rowIndex, int columnIndex) {
            return delegate.getValueAt(convertTableRowIndexToModel(rowIndex),columnIndex);    
        }
     
        public void setValueAt (Object value,int rowIndex, int columnIndex) {
            delegate.setValueAt(value, convertTableRowIndexToModel(rowIndex), columnIndex);
        }
     
        public boolean isCellEditable (int rowIndex, int columnIndex) {
            return delegate.isCellEditable(convertTableRowIndexToModel(rowIndex),columnIndex);
        }
     
     
        //méthode utilitaires
     
        public int convertTableRowIndexToModel (int rowIndex) {
            return currentPage * pageSize + rowIndex;
        }
     
        //getters et setters
     
        public void setDelegate (TableModel delegate) {
            this.delegate = delegate;
        }
     
        public TableModel getDelegate () {
            return this.delegate;
        }
     
        public void setPageSize (int pageSize) {
            this.pageSize = pageSize;
        }
     
        public int getPageSize () {
            return this.pageSize;
        }
     
        public void setCurrentPage (int currentPage) {
            this.currentPage = currentPage;        
        }
     
        public int getCurrentPage () {
            return this.currentPage;
        }
     
    }
    Il suffit ensuite de faire joujou sur le currentPage avec les getters et setters pour changer la page en cours.

    Attentio j'ai écris ce code en 2*2 sans le tester, à tes riques et périls, l'important pour toi est de bien saisir le concept. (enfin elle compile quand même)

    De même il faudra surement que tu l'adaptes à ta sauce

Discussions similaires

  1. [JTable] Pagination avec de grosses quantités de données
    Par virus321 dans le forum Composants
    Réponses: 6
    Dernier message: 27/11/2013, 11h42
  2. [Swing]JTable- Dimensionner les colonnes
    Par loutfi dans le forum Composants
    Réponses: 12
    Dernier message: 01/07/2011, 08h50
  3. [SWING]jTable + Focus
    Par chady dans le forum Composants
    Réponses: 5
    Dernier message: 27/02/2003, 14h51
  4. JBuilder7 & JTable Colonne alignement
    Par Tonton Luc dans le forum JBuilder
    Réponses: 5
    Dernier message: 06/11/2002, 17h32
  5. Réponses: 9
    Dernier message: 12/08/2002, 07h38

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