je viens poster ce message car j'ai un petit problème sur lequel je
m'arrache les cheveux, et je me demande si quelqu'un est en mesure de
m'aider. Le problème est le suivant :
Comment faire du contrôle de saisie dans les cellules d'un JTable ?
Pour n'importe quel composant classique, je plaçais mes méthodes de
vérification de la saisie dans un public void focusLost();
Mais celà ne marche pas dans un JTable, à cause des editor je pense. En
fait si j'essaie de faire mon contrôle dans un focusLost, je peux bien
récupérer le text qu'il y'avait dans l'editor, je fais mes tests, je
modifie le texte, mais impossible de refaire un setText().
J'ai alors pensé à setValueAt(), mais je ne peux pas obtenir les
coordonnées de la cellule que j'étais en train d'éditer avant qu'elle
perde le focus. J'ai aussi essayé de passer par un TableModelListener
mais je n'ai fait qu'accumuler les bugs...
Quelqu'un a t'il une méthode simple et efficace pour faire du contrôle
sur ce qui vient d'être saisi dans un JTable ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Isammoc
je viens poster ce message car j'ai un petit problème sur lequel je m'arrache les cheveux, et je me demande si quelqu'un est en mesure de m'aider. Le problème est le suivant :
Comment faire du contrôle de saisie dans les cellules d'un JTable ?
Pour n'importe quel composant classique, je plaçais mes méthodes de vérification de la saisie dans un public void focusLost();
Mais celà ne marche pas dans un JTable, à cause des editor je pense. En fait si j'essaie de faire mon contrôle dans un focusLost, je peux bien récupérer le text qu'il y'avait dans l'editor, je fais mes tests, je modifie le texte, mais impossible de refaire un setText().
J'ai alors pensé à setValueAt(), mais je ne peux pas obtenir les coordonnées de la cellule que j'étais en train d'éditer avant qu'elle perde le focus. J'ai aussi essayé de passer par un TableModelListener mais je n'ai fait qu'accumuler les bugs...
Quelqu'un a t'il une méthode simple et efficace pour faire du contrôle sur ce qui vient d'être saisi dans un JTable ?
Merci d'avance,
De manière générale, c'est moche de mettre un listener pour vérifier la valeur mise par l'utilisateur, refaire un model est souvent plus propre.
Thibaut
Apres, ici, si tu veux vraiment le faire, tu dois écouter l'éditeur, et il a toutes les informations nécessaires...
je viens poster ce message car j'ai un petit problème sur lequel je
m'arrache les cheveux, et je me demande si quelqu'un est en mesure de
m'aider. Le problème est le suivant :
Comment faire du contrôle de saisie dans les cellules d'un JTable ?
Pour n'importe quel composant classique, je plaçais mes méthodes de
vérification de la saisie dans un public void focusLost();
Mais celà ne marche pas dans un JTable, à cause des editor je pense. En
fait si j'essaie de faire mon contrôle dans un focusLost, je peux bien
récupérer le text qu'il y'avait dans l'editor, je fais mes tests, je
modifie le texte, mais impossible de refaire un setText().
J'ai alors pensé à setValueAt(), mais je ne peux pas obtenir les
coordonnées de la cellule que j'étais en train d'éditer avant qu'elle
perde le focus. J'ai aussi essayé de passer par un TableModelListener mais
je n'ai fait qu'accumuler les bugs...
Quelqu'un a t'il une méthode simple et efficace pour faire du contrôle sur
ce qui vient d'être saisi dans un JTable ?
Merci d'avance,
De manière générale, c'est moche de mettre un listener pour vérifier la
valeur mise par l'utilisateur, refaire un model est souvent plus propre.
Thibaut
Apres, ici, si tu veux vraiment le faire, tu dois écouter l'éditeur, et il a
toutes les informations nécessaires...
je viens poster ce message car j'ai un petit problème sur lequel je m'arrache les cheveux, et je me demande si quelqu'un est en mesure de m'aider. Le problème est le suivant :
Comment faire du contrôle de saisie dans les cellules d'un JTable ?
Pour n'importe quel composant classique, je plaçais mes méthodes de vérification de la saisie dans un public void focusLost();
Mais celà ne marche pas dans un JTable, à cause des editor je pense. En fait si j'essaie de faire mon contrôle dans un focusLost, je peux bien récupérer le text qu'il y'avait dans l'editor, je fais mes tests, je modifie le texte, mais impossible de refaire un setText().
J'ai alors pensé à setValueAt(), mais je ne peux pas obtenir les coordonnées de la cellule que j'étais en train d'éditer avant qu'elle perde le focus. J'ai aussi essayé de passer par un TableModelListener mais je n'ai fait qu'accumuler les bugs...
Quelqu'un a t'il une méthode simple et efficace pour faire du contrôle sur ce qui vient d'être saisi dans un JTable ?
Merci d'avance,
De manière générale, c'est moche de mettre un listener pour vérifier la valeur mise par l'utilisateur, refaire un model est souvent plus propre.
Thibaut
Apres, ici, si tu veux vraiment le faire, tu dois écouter l'éditeur, et il a toutes les informations nécessaires...
Thibal
De manière générale, c'est moche de mettre un listener pour vérifier la valeur mise par l'utilisateur, refaire un model est souvent plus propre.
Ok je veux bien, mais un modèle de quoi ? Désolé de t'embêter, mais je suis vraiment perdu là et je ne vois pas trop comment faire. Peux tu me guider un peu plus s'il te plaît ? Merci beaucoup?
Thibaut
Apres, ici, si tu veux vraiment le faire, tu dois écouter l'éditeur, et il a toutes les informations nécessaires...
Non je ne suis pas forcemment têtu sur le fait d'utiliser un listener, mais comme je te l'ai dit, ça ne marche pas. Si on met un listener sur l'Editor de cellule, on peut bien récupérer le texte, mais on ne peut pas faire setText, et comme je l'ai dit, pour faire un setValueAt il faudrait que l'editeur sache à quelle cellule il appartient...
Re-merci d'avance,
Thibaut
De manière générale, c'est moche de mettre un listener pour vérifier la
valeur mise par l'utilisateur, refaire un model est souvent plus propre.
Ok je veux bien, mais un modèle de quoi ? Désolé de t'embêter, mais je
suis vraiment perdu là et je ne vois pas trop comment faire. Peux tu me
guider un peu plus s'il te plaît ? Merci beaucoup?
Thibaut
Apres, ici, si tu veux vraiment le faire, tu dois écouter l'éditeur, et il a
toutes les informations nécessaires...
Non je ne suis pas forcemment têtu sur le fait d'utiliser un listener,
mais comme je te l'ai dit, ça ne marche pas. Si on met un listener sur
l'Editor de cellule, on peut bien récupérer le texte, mais on ne peut
pas faire setText, et comme je l'ai dit, pour faire un setValueAt il
faudrait que l'editeur sache à quelle cellule il appartient...
De manière générale, c'est moche de mettre un listener pour vérifier la valeur mise par l'utilisateur, refaire un model est souvent plus propre.
Ok je veux bien, mais un modèle de quoi ? Désolé de t'embêter, mais je suis vraiment perdu là et je ne vois pas trop comment faire. Peux tu me guider un peu plus s'il te plaît ? Merci beaucoup?
Thibaut
Apres, ici, si tu veux vraiment le faire, tu dois écouter l'éditeur, et il a toutes les informations nécessaires...
Non je ne suis pas forcemment têtu sur le fait d'utiliser un listener, mais comme je te l'ai dit, ça ne marche pas. Si on met un listener sur l'Editor de cellule, on peut bien récupérer le texte, mais on ne peut pas faire setText, et comme je l'ai dit, pour faire un setValueAt il faudrait que l'editeur sache à quelle cellule il appartient...
Re-merci d'avance,
Thibaut
Isammoc
De manière générale, c'est moche de mettre un listener pour vérifier la valeur mise par l'utilisateur, refaire un model est souvent plus propre.
Ok je veux bien, mais un modèle de quoi ? Désolé de t'embêter, mais je suis vraiment perdu là et je ne vois pas trop comment faire. Peux tu me guider un peu plus s'il te plaît ? Merci beaucoup?
Swing est basé sur le concept MVC (Modèle Vue Controleur) Donc, regarde de ce coté.
Ensuite, le model d'une JTable TableModel. Essaye d'implémenter le tiens (fait descendre de DefaultTableModel c'est plus sur)
De plus, tu peux controler ce que fais ton Editor en implémentant les tiens. Regarde vers TableCellEditor et setCellEditor de JTable
Apres, ici, si tu veux vraiment le faire, tu dois écouter l'éditeur, et il a toutes les informations nécessaires...
Non je ne suis pas forcemment têtu sur le fait d'utiliser un listener, mais comme je te l'ai dit, ça ne marche pas. Si on met un listener sur l'Editor de cellule, on peut bien récupérer le texte, mais on ne peut pas faire setText, et comme je l'ai dit, pour faire un setValueAt il faudrait que l'editeur sache à quelle cellule il appartient...
getEditingColumn() getEditingRow()
de JTable t'aidera surement.
Re-merci d'avance,
Thibaut
Isammoc La javadoc est ton amie.
De manière générale, c'est moche de mettre un listener pour vérifier la
valeur mise par l'utilisateur, refaire un model est souvent plus propre.
Ok je veux bien, mais un modèle de quoi ? Désolé de t'embêter, mais je
suis vraiment perdu là et je ne vois pas trop comment faire. Peux tu me
guider un peu plus s'il te plaît ? Merci beaucoup?
Swing est basé sur le concept MVC (Modèle Vue Controleur)
Donc, regarde de ce coté.
Ensuite, le model d'une JTable TableModel.
Essaye d'implémenter le tiens (fait descendre de DefaultTableModel c'est
plus sur)
De plus, tu peux controler ce que fais ton Editor en implémentant les tiens.
Regarde vers TableCellEditor
et setCellEditor de JTable
Apres, ici, si tu veux vraiment le faire, tu dois écouter l'éditeur, et
il a toutes les informations nécessaires...
Non je ne suis pas forcemment têtu sur le fait d'utiliser un listener,
mais comme je te l'ai dit, ça ne marche pas. Si on met un listener sur
l'Editor de cellule, on peut bien récupérer le texte, mais on ne peut pas
faire setText, et comme je l'ai dit, pour faire un setValueAt il faudrait
que l'editeur sache à quelle cellule il appartient...
De manière générale, c'est moche de mettre un listener pour vérifier la valeur mise par l'utilisateur, refaire un model est souvent plus propre.
Ok je veux bien, mais un modèle de quoi ? Désolé de t'embêter, mais je suis vraiment perdu là et je ne vois pas trop comment faire. Peux tu me guider un peu plus s'il te plaît ? Merci beaucoup?
Swing est basé sur le concept MVC (Modèle Vue Controleur) Donc, regarde de ce coté.
Ensuite, le model d'une JTable TableModel. Essaye d'implémenter le tiens (fait descendre de DefaultTableModel c'est plus sur)
De plus, tu peux controler ce que fais ton Editor en implémentant les tiens. Regarde vers TableCellEditor et setCellEditor de JTable
Apres, ici, si tu veux vraiment le faire, tu dois écouter l'éditeur, et il a toutes les informations nécessaires...
Non je ne suis pas forcemment têtu sur le fait d'utiliser un listener, mais comme je te l'ai dit, ça ne marche pas. Si on met un listener sur l'Editor de cellule, on peut bien récupérer le texte, mais on ne peut pas faire setText, et comme je l'ai dit, pour faire un setValueAt il faudrait que l'editeur sache à quelle cellule il appartient...