JTable problèmes de manipulation !! [Résolu]

cs_Xavixxxx 15 Messages postés dimanche 18 avril 2004Date d'inscription 2 août 2006 Dernière intervention - 21 mai 2005 à 16:55 - Dernière réponse : kamelhiya 5 Messages postés dimanche 21 février 2010Date d'inscription 8 octobre 2010 Dernière intervention
- 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
Afficher la suite 

9 réponses

Répondre au sujet
hades5 25 Messages postés dimanche 26 décembre 2004Date d'inscription 5 juin 2007 Dernière intervention - 22 mai 2005 à 12:38
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de hades5
cs_Xavixxxx 15 Messages postés dimanche 18 avril 2004Date d'inscription 2 août 2006 Dernière intervention - 23 mai 2005 à 10:01
0
Utile
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 ....
Commenter la réponse de cs_Xavixxxx
cs_Xavixxxx 15 Messages postés dimanche 18 avril 2004Date d'inscription 2 août 2006 Dernière intervention - 23 mai 2005 à 10:02
0
Utile
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 !!
Commenter la réponse de cs_Xavixxxx
cs_Xavixxxx 15 Messages postés dimanche 18 avril 2004Date d'inscription 2 août 2006 Dernière intervention - 23 mai 2005 à 10:02
0
Utile
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 !!
Commenter la réponse de cs_Xavixxxx
hades5 25 Messages postés dimanche 26 décembre 2004Date d'inscription 5 juin 2007 Dernière intervention - 23 mai 2005 à 18:10
0
Utile
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
Commenter la réponse de hades5
cs_Xavixxxx 15 Messages postés dimanche 18 avril 2004Date d'inscription 2 août 2006 Dernière intervention - 24 mai 2005 à 09:39
0
Utile
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
Commenter la réponse de cs_Xavixxxx
cs_Xavixxxx 15 Messages postés dimanche 18 avril 2004Date d'inscription 2 août 2006 Dernière intervention - 24 mai 2005 à 09:51
0
Utile
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
Commenter la réponse de cs_Xavixxxx
hades5 25 Messages postés dimanche 26 décembre 2004Date d'inscription 5 juin 2007 Dernière intervention - 25 mai 2005 à 11:12
0
Utile
Salut,





Pour la dernière question, il faudrait alors donner un modèle de colonne à ta JTable, je pense
Commenter la réponse de hades5
kamelhiya 5 Messages postés dimanche 21 février 2010Date d'inscription 8 octobre 2010 Dernière intervention - 8 oct. 2010 à 16:58
0
Utile
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...
Commenter la réponse de kamelhiya

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.