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 :

Problème pour trier une JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Par défaut Problème pour trier une JTable
    Re-Bonjour,
    j'ai un autre problème avec mes JTables ... et encore avec le tri par dessus le marché

    Voilà, j'ai une JTable qui puise son contenu dans un ArrayList d'environ 30 lignes.
    Seulement, je ne veux en laisser apparaître que les 10 premières.
    Donc j'ai modifier la méthode getRowCount() pour lui faire renvoyer 10 ou le nombre précisé par l'utilisateur.
    ça marche impeccable, seulement, quand je trie le tableau, il ne tri que les lignes affichées. Or, moi je voudrais qu'il tri tout, puis qu'il ne laisse apparaitre que les 10 premières !

    Je vois difficilement comment je pourrais faire ceci avec le système actuel ... je crois qu'il faut utiliser un autre moyen qui "masquerai" simplement les lignes en trop ...

    Mais je ne vois pas trop comment faire cela ...
    Merci d'avance.

  2. #2
    Membre émérite

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Par défaut
    Bonjour,

    Est-ce qu'un RowFilter pourrait t'aider : http://download.oracle.com/javase/6/...RowSorter.html ?
    Tu pourrais filtrer avec cet objet les X premiers éléments et ainsi conserver le modèle de données complet.

    Benoit

  3. #3
    Membre éclairé
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Par défaut
    Merci beaucoup pour la piste, je ne connaissais pas ...
    je vais ingurgiter la doc et faire des tests, je te tiens au courant.
    Merci beaucoup.

  4. #4
    Membre éclairé
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Par défaut
    Salut, j'ai étudié la chose à fond, j'ai donc créer mes classes perso donc voici le code à titre d'exemple :

    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
    import javax.swing.RowFilter;
     
    public class ScreenActivityFilter extends RowFilter<JModelScreenActivity, Integer> {
     
    	@Override
    	public boolean include(
    		javax.swing.RowFilter.Entry<? extends JModelScreenActivity, ? extends Integer> entry) {
    		if(entry.getIdentifier()<10){
    			return true;
    		}else{
    			return false;
    		}
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TableRowSorter<JModelScreenActivity> sorter = new TableRowSorter<JModelScreenActivity>((JModelScreenActivity) t.getModel());
    		sorter.setRowFilter(new ScreenActivityFilter());
    		t.setRowSorter(sorter);
    Bon, le problème, c'est que le row filter n'est appelé qu'une fois à l'initialisation du tableau ... après, tu peu trier, redessiner et tout ce que tu veux, la fonction personnalisée include n'est plus appelé.
    Résultat ... retour à la case départ !

    d'où vient le pb exactement ?
    C'est tout de même bizarre que le row filter ne soit pas appelé à chaque tri !
    Peut-être JTable retient-il les résultats ... et il ne les redemande donc pas après ...

Discussions similaires

  1. Réponses: 28
    Dernier message: 24/05/2006, 18h20
  2. Réponses: 13
    Dernier message: 23/12/2004, 18h01
  3. [MSSQL] Problème pour sélectionner une seule occurence
    Par Tinfolley dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/07/2004, 09h02
  4. Réponses: 3
    Dernier message: 29/08/2003, 10h57
  5. Créer une vue pour trier une requete UNION ?
    Par Etienne Bar dans le forum SQL
    Réponses: 3
    Dernier message: 03/01/2003, 20h22

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