Listener sur des en tetes d'une JTable et modification de ceux-ci

Listener sur des en tetes d'une JTable et modification de ceux-ci - Java - Programmation

Marsh Posté le 03-06-2004 à 21:13:41    

Bonjour,
 
Je cherche à faire une table dans laquelle on peut trier les éléments en cliquant sur le header de la colonne.
J'ai réussi, mais le clic manque de sensibilité (il faut généralement faire deux clics)
 
J'ai une classe qui est une sous classe de JTable et qui fait ceci :

Code :
  1. getTableHeader().addMouseListener(new MouseAdapter() {
  2.     public void mouseClicked(MouseEvent e) {
  3.         TableColumnModel columnModel = getColumnModel();
  4.         int viewColumn = columnModel.getColumnIndexAtX(e.getX());
  5.         int column = convertColumnIndexToModel(viewColumn);
  6.         if (e.getClickCount() == 1 && column != -1) {
  7.             model.setSortMethod(column);
  8.             revalidate();
  9.         }
  10.     }
  11. });


Comment cela se fait-il que le clic ne marche pas bien?
 
De plus, je voudrais mettre à jour ces en tetes de colonnes (pour avoir une petite fleche pour dire selon quelle colonne est triée la trable) mais je n'ai pas trouvé comment faire. Quelq'un a une piste?
 
Merci

Reply

Marsh Posté le 03-06-2004 à 21:13:41   

Reply

Marsh Posté le 04-07-2004 à 15:59:42    

:bounce:

Reply

Marsh Posté le 05-07-2004 à 09:33:48    

Reply

Marsh Posté le 05-07-2004 à 15:43:08    


Merci.
J'ai regardé, c'est très dense, mais ca correspond un peu a ce que je faisais, en mieux.
J'ai toujours un petit problème de rafraichissemnt apres avoir cliqué mais j'essaye de trouver. (lenteur du rafraichissement? temps de reclassement de la table? ...)
 

yoc spi a ecrit a écrit :

De plus, je voudrais mettre à jour ces en tetes de colonnes (pour avoir une petite fleche pour dire selon quelle colonne est triée la trable) mais je n'ai pas trouvé comment faire. Quelq'un a une piste?



J'ai trouvé la solution a ce problème, il faut utiliser TableCellRenderer

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed