JTable problèmes de manipulation !!

Résolu
cs_Xavixxxx Messages postés 15 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 2 août 2006 - 21 mai 2005 à 16:55
kamelhiya Messages postés 5 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 8 octobre 2010 - 8 oct. 2010 à 16:58
Salut !!



Voila, je poste ce message parce ke je suis un peu perdu dans
l'utilisation des Jtables.J'ai commencé à manipuler il y a trés peu de
temps donc difficulté ...



J'ai un panel composé de 3 boutons :

- un bouton pour ajouter une ligne

- un bouton pour insérer une ligne

- un bouton pour supprimer une ligne



et une Jtable



Mes problèmes sont les suivant :



-Lorsque je clique sur le bouton ajouter, j'aimerai que la derniere
ligne de ma Jtables soit surligné ( sélectionné ) et je ne vois pas
comment faire.j'ai fait un Tablecellrenderer mais je ne vois pas
comment lié l'action du bouton avec le surlignage de la ligne ...



-J'aimerai qu'on ne puisse sélectionner qu'une ligne à la fois avec la souris, la aussi, je ne vois pas comment faire ...



Merci d'avance pour vos réponses !! Ca fait 2 jours que je bataille sur ces problèmes, si vous pouvez m'aider ca serait cool !!



Tchao

9 réponses

hades5 Messages postés 25 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 5 juin 2007
22 mai 2005 à 12:38
Salut,



Pour la selection d'une seule ligne

JTable tableau = new JTable ( modele ) ;



// mode de selection des lignes du tableau

tableau.setSelectionMode(ListSelectionModel.SINGLE_SELECTION) ;



et pour l'association du renderer au tabeau



// mon renderer

MyObjectRenderer monObjectRenderer = new MyObjectRenderer () ;

tableau.setDefaultRenderer( Object.class, monObjectRenderer ) ;



Hadès
3
cs_Xavixxxx Messages postés 15 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 2 août 2006
23 mai 2005 à 10:01
Merci pour ta réponse Hadés !!

Concernant la sélection d'une seule ligne dans le tableau ca marche nikel !!

Par contre, concernant ma première question ( je m'étais mal exprimé), c'était de savoir comment surligner la dernière ligne de ma JTable (aprés celles déja éditées), j'ai trouvé la solution il fallait faire un

table.setRowSelectionInterval(position,position);

avec position = numéro de la dernière ligne .

par contre je me retrouve avec deux autres problèmes !!!!!

- Dans un premier temps j'aimerai pouvoir lorsque je clique sur le bouton ajouter une ligne, que le curseur se place automatiquement sur la 1ere cellule de ma ligne, pour cela je fais un editCellAt(position,1) , je me retrouve bien sur ma cellule mais elle n'est pas directement éditable, il faut que je clique dessus pour pouvoir l'éditer. Comment faire pour la rendre éditable directement ?????

-Deuxièmement, Lorsque l'on clique avec la souris sur une cellule de la JTable , au bout d'un clic la cellule est sélectionnée (et éditable mais la cellule garde son apparence) et au bout de 2 clics la cellule est sélectionnée et éditable avec un background blanc et avec le curseur.
J'aimerai que l'aspect la cellule soit comme si j'avais cliqué 2 fois dessus mais au bout d'un clic. La non plus je vois pas !!

-Dernièrement ! mon tableau sera rempli uniquement de float, pour l'instant, a chaque fois que je veux rentrer autre chose qu'un chiffre, ma cellule ne se valide pas(ce qui est normal par rapport aux lettre mais qui me gene par rapport au float et au ".").J'aimerai donc pouvoir rentrer des float dans les cellules et pouvoir valider le chiffre dans le code.Je suppose qu'il est nécessaire d'utiliser un TableCellEditor mais je ne vois pas comment faire.Mes cellules doivent elles être des JLabels contenant des float ??

Désolé de poser autant de questions mais c super urgent !! j'ai une JTable a créer entièrement paramétrable et je n'ai commencé a les manipuler qu'il y a 2 jours et ca devrait etre fini pour ce soir ....
0
cs_Xavixxxx Messages postés 15 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 2 août 2006
23 mai 2005 à 10:02
Merci pour ta réponse Hadés !!

Concernant la sélection d'une seule ligne dans le tableau ca marche nikel !!

Par contre, concernant ma première question ( je m'étais mal exprimé), c'était de savoir comment surligner la dernière ligne de ma JTable (aprés celles déja éditées), j'ai trouvé la solution il fallait faire un

table.setRowSelectionInterval(position,position);

avec position = numéro de la dernière ligne .

par contre je me retrouve avec trois autres problèmes !!!!!

- Dans un premier temps j'aimerai pouvoir lorsque je clique sur le bouton ajouter une ligne, que le curseur se place automatiquement sur la 1ere cellule de ma ligne, pour cela je fais un editCellAt(position,1) , je me retrouve bien sur ma cellule mais elle n'est pas directement éditable, il faut que je clique dessus pour pouvoir l'éditer. Comment faire pour la rendre éditable directement ?????

-Deuxièmement, Lorsque l'on clique avec la souris sur une cellule de la JTable , au bout d'un clic la cellule est sélectionnée (et éditable mais la cellule garde son apparence) et au bout de 2 clics la cellule est sélectionnée et éditable avec un background blanc et avec le curseur.
J'aimerai que l'aspect la cellule soit comme si j'avais cliqué 2 fois dessus mais au bout d'un clic. La non plus je vois pas !!

-Dernièrement ! mon tableau sera rempli uniquement de float, pour l'instant, a chaque fois que je veux rentrer autre chose qu'un chiffre, ma cellule ne se valide pas(ce qui est normal par rapport aux lettre mais qui me gene par rapport au float et au ".").J'aimerai donc pouvoir rentrer des float dans les cellules et pouvoir valider le chiffre dans le code.Je suppose qu'il est nécessaire d'utiliser un TableCellEditor mais je ne vois pas comment faire.Mes cellules doivent elles être des JLabels contenant des float ??

Désolé de poser autant de questions mais c super urgent !! j'ai une JTable a créer entièrement paramétrable et je n'ai commencé a les manipuler qu'il y a 2 jours et ca devrait etre fini pour ce soir ....

Merci d'avance pour vos réponses !!
Tchao !!
0
cs_Xavixxxx Messages postés 15 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 2 août 2006
23 mai 2005 à 10:02
Merci pour ta réponse Hadés !!

Concernant la sélection d'une seule ligne dans le tableau ca marche nikel !!

Par contre, concernant ma première question ( je m'étais mal exprimé), c'était de savoir comment surligner la dernière ligne de ma JTable (aprés celles déja éditées), j'ai trouvé la solution il fallait faire un

table.setRowSelectionInterval(position,position);

avec position = numéro de la dernière ligne .

par contre je me retrouve avec trois autres problèmes !!!!!

- Dans un premier temps j'aimerai pouvoir lorsque je clique sur le bouton ajouter une ligne, que le curseur se place automatiquement sur la 1ere cellule de ma ligne, pour cela je fais un editCellAt(position,1) , je me retrouve bien sur ma cellule mais elle n'est pas directement éditable, il faut que je clique dessus pour pouvoir l'éditer. Comment faire pour la rendre éditable directement ?????

-Deuxièmement, Lorsque l'on clique avec la souris sur une cellule de la JTable , au bout d'un clic la cellule est sélectionnée (et éditable mais la cellule garde son apparence) et au bout de 2 clics la cellule est sélectionnée et éditable avec un background blanc et avec le curseur.
J'aimerai que l'aspect la cellule soit comme si j'avais cliqué 2 fois dessus mais au bout d'un clic. La non plus je vois pas !!

-Dernièrement ! mon tableau sera rempli uniquement de float, pour l'instant, a chaque fois que je veux rentrer autre chose qu'un chiffre, ma cellule ne se valide pas(ce qui est normal par rapport aux lettre mais qui me gene par rapport au float et au ".").J'aimerai donc pouvoir rentrer des float dans les cellules et pouvoir valider le chiffre dans le code.Je suppose qu'il est nécessaire d'utiliser un TableCellEditor mais je ne vois pas comment faire.Mes cellules doivent elles être des JLabels contenant des float ??

Désolé de poser autant de questions mais c super urgent !! j'ai une JTable a créer entièrement paramétrable et je n'ai commencé a les manipuler qu'il y a 2 jours et ca devrait etre fini pour ce soir ....

Merci d'avance pour vos réponses !!
Tchao !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hades5 Messages postés 25 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 5 juin 2007
23 mai 2005 à 18:10
Salut,



Pour la question 1 et 2

Pour l'édition, il faut utiliser un "EDITOR" pour les tableaux.
l'editor gère l'apparence et le comportement des cellules pendant
l'édition. Cependant, j'en n'ai jamais utilisé, il faudrait voir si tu
peux trouver des exemples, ce soir je dois travailler sur une base de
données que je dois livrer et demain je ne serai pas chez moi. Je ne
suis pas un programmeur, je pratique JAVA pour m'amuser pendant mes
heures libres...



La dernière question concernant la classe FLOAT de tes cellules, je ne comprends pas ce qui te gène.

qui me gene par rapport au float et au ".").J'aimerai donc pouvoir
rentrer des float dans les cellules et pouvoir valider le chiffre dans
le code.

Qu'est-ce qui ne va pas exactement : est-ce que tu arrrives à rentrer
tes nombres flotants, ou tu veux remplacer plutôt le "point" par une
virgule ?



Hadès
0
cs_Xavixxxx Messages postés 15 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 2 août 2006
24 mai 2005 à 09:39
Salut !!

Pour les 2 eres questions je vais rechercher des exemples sur le net en espérant en trouver un qui corresponde, pour l'instant j'en ai pas trouvé ...

Pour la dernière, en fait je ne peux pas rentrer de nombre float ou double, je ne peux rentrer que des entiers. Lorsque je rentre un float ou un double, je ne peux valider la cellule, je dois nécessairement enlever le "." . J'ai associé à ma table un modèle dérivé de AbstractTableModel ,
J'ai 2 attributs dans cette classe :

- private String [ ] colmunsName; // Tableau de string représentant le nom de mes colonnes
- private Object [ ][ ] data; // Matrice contenant les données de mon tableau

Je désire laisser ma matrice data avec le type Object ce qui me permet de remplir le jTable avec des "null" pour l'initialisation pour pouvoir voir un certains nombre de lignes.Par contre, j'aimerai pouvoir rentrer des float a la main. En fait j'ai 3 colonnes dans lesquel je devrais pouvoir remplir des float en cliquant sur la case et 4 autres colonnes qui se remplissent automatiquement a la suite de calculs faits par rapport aux chiffres des 3 premieres colonnes. Ce qui me surprend le plus c 'est que dans mes 4 colonnes de résultats, j'arrive a afficher des float . En fait c'est uniquement un problème de saisie mais je ne sais pas comment le résoudre .

Voila !!!!



Tchao
0
cs_Xavixxxx Messages postés 15 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 2 août 2006
24 mai 2005 à 09:51
Salut !!



Pour les 2 eres questions je vais chercher sur le net des exemples, mais jusqu'a aujourd'hui je n'en ai pas trouvé ...


Pour la dernière, en fait j'associe à ma jTable un modèle qui est un AbstractModel que j'ai implémenter.
J'ai 2 attributs dans ce modèle:

- private String ColumsName [ ] ; // nom des colonnes
- private Object [ ] [ ] data; //tableau d'objet contenant les données du tableau


Je désire garder le type Object pour pour mes données, ce qui me permet de remplir mon tableau avec des null me permettant d'avoir un certains nombre de lignes visibles.
Mais, je ne peux rentrer de chiffres décimaux, je ne peux rentrer que des nombres entiers, si je rentre un nombre comme celui ci 3.12 il me surligne la cellule en rouge et je ne peux pas valider la cellule pour passer à une autre cellule.Je ne sais pas comment faire pour éviter cela, ensuite je veux faire ma propre méthode de validation de cellule c'est à dire par exemple si le chiffre rentré est supèrieur a 10 , ne pas valider la cellule et reprendre l'édition de cette dernière.

En espérant que quelqu'un puisse m'aider !!


Tchao
merci pour ton aide Hades
0
hades5 Messages postés 25 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 5 juin 2007
25 mai 2005 à 11:12
Salut,





Pour la dernière question, il faudrait alors donner un modèle de colonne à ta JTable, je pense
0
kamelhiya Messages postés 5 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 8 octobre 2010
8 oct. 2010 à 16:58
Bonjour, je déterre un vieux topic car j'ai besoin d'aide s'il-vous-plait.

J'ai moi aussi un bouton ajouter et je voudrais
savoir comment surligner la dernière ligne de ma JTable (aprés celles déja éditées) ?!?

j'ai tenté:

int count;
count = jTable.getRowCount();
jTable.setRowSelectionInterval(count, count);
jTable.setSelectionBackground(Color.RED);

mais ça me produit une erreur :/

Merci pour votre aide...
0
Rejoignez-nous