2009-04-07 3 views
5

J'ai une JTable avec un ensemble de cellules non modifiables et je souhaite que toutes les cellules d'une colonne particulière affichent un curseur de souris différent pendant que la souris les survole. J'utilise déjà un moteur de rendu personnalisé et le réglage du curseur sur le composant de rendu ne semble pas fonctionner (comme c'est le cas pour les info-bulles).Définition du curseur de la souris pour une cellule JTable particulière

Cela semble fonctionner pour les éditeurs.

Est-ce que ce n'est pas possible dans JTable quand votre cellule n'est pas éditée ou est-ce qu'il me manque quelque chose?

Répondre

7

Ajoutez un MouseMotionListener à la table JTable puis, à l'aide de mouseMoved(), déterminez quelle colonne il utilise columnAtPoint() de JTable et si c'est la colonne que vous recherchez, setCursor() sur JTable.

+0

Je vais accepter la réponse parce que c'est ce que nous faisions déjà et cela fonctionne. J'espérais trouver quelque chose d'un peu mieux. –

+0

ouais, c'est plus simple. : D – gumuruh

+2

Cela fonctionne bien, sauf ** lorsque le JTable est contenu dans un panneau d'un JTabbedPane. Dans ce cas, un ensemble Cursor sur le JTable n'a aucun effet. Cela semble être un bug dans Swing (Java SE 1.6.0_27). –

0

Voici une façon de changer le curseur à une colonne particulière dans JTable:

if(tblExamHistoryAll.columnAtPoint(evt.getPoint())==5) 
{ 
    setCursor(Cursor.HAND_CURSOR); 
} 
else 
{ 
    setCursor(0); 
} 
Questions connexes