Re-bonjour à tous!
J'ai grand besoin de conseils ou du moins d'idées qui me donneront une bonne base pour réfléchir.
Mon problème:
Dans une interface graphique, j'ai une JTable qui a pour model TableSorter (celui qui est fourni dans le tutorial de Sun, c'est un Model qui permet le tri en fonction des colonnes, par des clics sur les TableHeaders), qui est associé à un model que j'ai conçu ("data" est une ArrayList d'objets dont les champs composent les colonnes). Je voudrais rendre mon JTable sensible à plusieurs actions:
-double-clic sur une row: j'aimerais dans ce cas afficher une fenêtre contenant des informations sur l'objet associé à cette row. Je pense utiliser la méthode getClickCount() de MouseEvent (pour compter le nombre de clics consécutifs), mais je ne sais pas à quel objet faire un addMouseListener(). Peut-être puis-je désigner une row en tant qu'objet, y ajouter mon MouseListener, mais comment?
-Je voudrais que, une fois que plusieurs rows sont sélectionnées (un ou plusieurs, contigus ou non), un appui sur la touche suppr permette d'effacer ces lignes et en même temps supprime les objets correspondants dans ma ArrayList data. Problème, je ne sais toujours pas à quels objets ajouter un KeyListener, et je ne sais pas comment récupérer la liste des rows sélectionnées (en fait mon grand problème est que je ne sais pas manipuler une row, la méthode getSelectedRow renvoie un entier!!!).
-Enfin, j'ai besoin d'un champ de texte éditable, qui engendrerait des réactions à chaque modification de son contenu (effacement, rajout d'un caractère...) sans que l'utilisateur ait à valider quoi que ce soit. J'ai pensé utilisé JTextField et un TextListener, mais les TextListener ne peuvent être utilisés que par TextField, qui est AWT, or j'ai vu dans le FAQ qu'il ne faut pas mélanger swing et awt. J'utilise donc ActionListener avec JTextField, mais dans ce cas l'utilisateur doit taper sur la touche "entrée" pour qu'une modification soit prise en compte, ce qui ne m'arrange pas. Y-a-ti une autre solution?
Quelqu'un pourrait-il m'aider???
Partager