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 :

[JXTable][RowSorter] Probleme de selection


Sujet :

Composants Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 90
    Par défaut [JXTable][RowSorter] Probleme de selection
    Bonjour à tous,

    Je travaille actuellement avec une JXTable et je rencontre un problème avec le RowSorter de la JXTable, activée avec table.setSortable(true).

    Déjà il est peut être nécessaire de rajouter que à chaque table est liée une FilterPipeline qui marche elle correctement.

    Si j'ai une cellule sélectionnée et que je la trie la colonne dans laquelle elle est (en cliquant sur le ColumnHeader) et bien la cellule reste à sa place alors que le reste de la table se trie. Quand je quitte l'éditeur, la valeur reste bien sur... Donc ça crée de gros problèmes

    Voici le principal code associé à ma table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    _table.setFillsViewportHeight(true);
    		_table.setHorizontalScrollEnabled(true);
    		_table.setDragEnabled(false);
    		_table.setSurrendersFocusOnKeystroke(true);
    		_table.getTableHeader().setReorderingAllowed(false);
    		_table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
    		_table.setAutoscrolls(true);
    		_table.setRowHeightEnabled(true);
    		_table.setSortable(true);
    Si y'a besoin de plus ou si je n'ai pas été assez claire dites moi,

    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
    Citation Envoyé par rednik Voir le message
    Si j'ai une cellule sélectionnée et que je la trie la colonne dans laquelle elle est (en cliquant sur le ColumnHeader) et bien la cellule reste à sa place alors que le reste de la table se trie. Quand je quitte l'éditeur, la valeur reste bien sur... Donc ça crée de gros problèmes
    Là soit mes neurones sont en mode rémission totale, soit je vieillis (putain ça fait tôt à 28 ans d'avoir de tels problèmes compréhension, je sens l'alzheimer arriver vite fait, va falloir que je me trouve un hospice tant que je suis sain d'esprit )

    Ou c'est juste que tu t'es un poil embrouiller dans tes explications et que c'est un poil confus.
    Je suppose que tu as mis en place des filters spécifiques, lesquels?
    Quel est le résultat que tu attends?
    Quel est le résultat obtenu actuellement?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 90
    Par défaut
    Mpfff. Je viens de relire. J'admet que ça n'a aucun sens. Pourtant j'étais sure d'avoir relu . Enfin passons, je la refais donc avec de vraies phrases

    J'utilise 5 filtres (PatternFilter dans une FilterPipeline) sur ma table que je rentre à l'init de ma table et j'ai un panel qui les affiche. Le tri est fait par nom de colonne, puis par valeur sur la colonne (setPattern()) . Bon pour ça pas de problèmes.

    En revanche lorsque je fais un 'tri' en cliquant sur le nom de ma colonne directement, c'est là que ça devient un bazar sans nom. Ca arrive lorsque une cellule est selectionnée et en train d'éditer.
    En gros le tri se fait correctement: la ligne selectionnée est deplacée mais la cellule éditée, elle, reste à sa place et du coup remplace la cellule de la nouvelle ligne de s'afficher. Lorsque je quitte l'édition, la cellule editée est sauvegardée et donc l'ancienne valeur de la ligne est perdue.

    C'est plus clair la ?

    Merci

  4. #4
    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
    Ca ressemble beaucoup à un bug ça...

    Tu utilises bien la dernière version de Swing je suppose (0.9.4), donc il va peut être falloir que tu ailles du coté du forum de SwingX et ouvrir en parallèle un bug dans l'outil de tracking.

    As tu essayé de voir ce que ça donne en retirant l'appel à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _table.setSurrendersFocusOnKeystroke(true);

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 90
    Par défaut
    Oui j'ai enlevé la ligne et ça semble rester .

    Par contre j'utilise la 9.3 ! C'est ce que j'essaie de voir depuis une semaine mais tout leur site est down... (http://swinglabs.org/downloads.jsp)

    Peut etre que ca a été remis à jour dans la 9.4 ?

    Le problème est surtout que reproduire le bug va être compliqué vu la taille du projet sur le quel je travaille... Enfin bon en tout cas merci

    Bonne journée,

  6. #6
    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
    Pour la 0.9.4 tu peux la trouver à l'adresse suivante: https://swingx.dev.java.net/servlets...903&folderID=0

    Mais n'espères pas trop non plus, car les fonctionnalités de tri de la JXTable sont vouées à être dépréciées dans le futur, à partir du moment ou SwingX sera orienté purement java 6 (le RowSorter ayant été inclus dans la JTable).

    Sinon en ce qui concerne les forums Swingx essaies toujours d'y poster en décrivant correctement le problème, quels sont les éléments spécifiques que tu as mis en places. SI tu arrives à faire un post bien ordonné et compréhensible (en anglais bien sûr) tu auras probablement Jeannette Winzenburg (la personne en charge des composants tabulaires sur SwingX, alias Kleopatra sur leurs forums) qui devrait te filer un coup de main. http://forums.java.net/jive/forum.jspa?forumID=73

    Par contre elle risque de te demander un cas de test

    Juste pour voir, tu as essayé en retirant le terminateEditOnFocusLost?

    Autre point dont je viens de m'apercevoir, Sun a arrêté de financer Swingx, donc a priori son évolution (déjà un poil lente) en sera encore plus limitée...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 90
    Par défaut
    Ahh !
    J'ai trouvé une semi solution (la cellule bouge meme quand elle est éditée):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		_table.setAutoCreateRowSorter(true);
    		_table.toggleSortOrder(0);
    Mais, les deux problèmes que je rencontre :
    + Deux flèches s'affichent au lieu d'une seule sur le colonne header a partir du second tri
    + lorsque je trie, la selection ne bouge pas, mais les lignes oui.

    Quelqu'un aurait il une idée pour corriger l'un de ces facheux points ?

    Merci

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 90
    Par défaut
    Citation Envoyé par sinok Voir le message

    Juste pour voir, tu as essayé en retirant le terminateEditOnFocusLost?
    Oui ça ne change rien hélas.

    Bon je vais essayer de poster sur le forum que tu as envoyé.

    Merci en tout cas pour toutes ces informations ! Je change de version et je tiens au courant si je trouve une solution.

    Bien dommage que Java ait arrêté d'aider SwingX, sachant qu'ils ont déjà profité d'une bonne partie des trucs dans Mustang non ?


    Bonne journée,

  9. #9
    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
    Citation Envoyé par rednik Voir le message

    Bien dommage que Java ait arrêté d'aider SwingX, sachant qu'ils ont déjà profité d'une bonne partie des trucs dans Mustang non ?
    Pas tant que çà, en fait le sorting et le filtering mis en place pour java 6 n'est pas celui de SwingX. SwingX a surtout servi en quelque sorte d'incubateur, mais peu de choses sont allées dans java (voire quasiment rien, si ce n'est la classe Desktop qui s'inspire de JDIC, SwingWorker (mais qui existait avant SwingLabs) et surement deux trois petites choses).

    Donc voilà.
    A priori si j'ai à bosser sur Swing dans le monde pro je me dirigerais vers JIDE, payant mais pérenne avec du support et des composant de très bonne qualité.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 90
    Par défaut
    En gros tu dirais qu'il est fortement dangereux de bosser pour une appli pro avec SwingX ? Je me sens assez concernée par le problème je t'avoue là.

    J'ai jeté un oeil sur JIDE, ça semble bien mais j'ai bien peur qu'il y ait peu de chance que SwingX soit JIDE compliant et donc que toute la partie graphique soit à refaire

    Me trompe-je ?

  11. #11
    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
    Pas dangereux en soit, c'est juste que le projet a un peu une allure d'arlésienne (la 1.0 ça fait des lustres qu'elle est attendue...), puis bon un paquet de gros commiteurs se sont barré (genre Romain Guy, Joshua Marinucci, Richard Blair et ainsi de suite...).
    En même temps le projet reste intéressant car il fournit quand même un gros nombre de composant, en open source, contenant des notions plus qu'intéressantes (HighLighters, Painters & cie).

    Donc il ne tombera pas non plus aux oubliettes. Il y aura toujours des gens intéressés par bosser sur le projet.
    Par contre j'ai un poil l'impression qu'il n'y a pas quelqu'un pour donner une direction à l'ensemble, prendre à un moment t la décision de faire une release et de passer uniquement en mode corrections. Bon en plus quelques composants (en particulier la JXTreeTable) sont quand même issus de hacks un poil limites. D'ailleurs Kleopatra a dans son incubateur une nouvelle TreeTable bien moins buggée mais pas encore finalisée (aka JXXTreeTable). En espérant qu'elle trouve tout de même le temps de la finir, bien qu'elle ne soit plus payée par Sun.

    Donc pour l'instant j'aurais tendance à éviter pour un dev pro (puis JIDE fournit un paquets de choses supplémentaires), mais ce n'est pas la fin du monde si tu utilises Swingx non plus, un paquet de devs ont été réalisés avec cette librairie, elle contient tout de même de bon concepts/composants/produits et continuera à être suivie par une équipe de développement.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 90
    Par défaut
    Bon, je suis à peu près rassurée.

    Je dois rester sur des api libres et SwingX incarnait une espèce d'api magique qui réussissait pas mal à la fois à apporter des choses qui collaient exactement à mes requêtes (qui étaient à la base assez élevées) et en même temps à être up à peu près tout le temps, donc ça me parait un peu dommage. Maintenant tout refaire me ferait perdre pas loin de quatre mois de projet ce qui reviendrait à suicider le projet... Donc on va jouer la technique autruche...

    Mais où est ce que tu as appris que Java arrêtait son financement ? Rien trouvé using Google...

  13. #13
    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
    Sur le forum de Swingx il y a deux jours de çà: http://forums.java.net/jive/thread.j...52665&tstart=0

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 90
    Par défaut
    Apparemment c'était un bug connu de longue date que tout ceci ne marche pas correctement

    A priori donc desactiver le RowSorter et mettre dans le filterpipeline un Shuttlesorter.

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme de selection aleatoire sur excel avec macro vba
    Par guillaume sors dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2005, 11h51
  2. [ASE]probleme memoire: select dans une insert
    Par SegmentationFault dans le forum Sybase
    Réponses: 2
    Dernier message: 16/08/2005, 13h20
  3. [XSLT] Probleme de selection avec namespaces
    Par Ludo_xml dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 01/06/2005, 15h32
  4. probleme requete select avec 2 colonnes
    Par cricri45000 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/04/2005, 11h39
  5. Probleme avec Select Case
    Par GeffD dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 07/03/2005, 16h28

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