2009-04-07 42 views
5

Tengo una JTable con un conjunto de celdas no editables y quiero que todas las celdas de una columna particular muestren un cursor de mouse diferente mientras el mouse está sobre ellas. Ya estoy usando un renderizador personalizado y la configuración del cursor en el componente de renderizado no parece funcionar (como lo hace para la información sobre herramientas).Configuración del cursor del mouse para una celda JTable en particular

Parece que funciona para los editores.

¿Esto no es posible en JTable cuando su celda no está siendo editada o me falta algo?

Respuesta

7

Agregue un MouseMotionListener a JTable y luego en mouseMoved() determine qué columna está usando columnTtPoint() de JTable y si es la columna particular que está buscando, configureCursor() en la JTable.

+0

Voy a aceptar la respuesta, porque esto es lo que estábamos haciendo ya y funciona. Esperaba encontrar algo un poco mejor. –

+0

sí, esto es más simple. : D – gumuruh

+2

Esto funciona bien, ** excepto ** cuando la JTable está contenida en un panel de un JTabbedPane. En ese caso, un Cursor configurado en JTable no tiene ningún efecto. Esto parece ser un error en Swing (Java SE 1.6.0_27). –

0

Esta es una manera de cambiar el cursor en una columna en particular en JTable:

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