2009-04-07 15 views
5

Ho una tabella J con un insieme di celle non modificabili e voglio che tutte le celle in una particolare colonna visualizzino un cursore del mouse diverso mentre il mouse passa sopra di loro. Sto già utilizzando un renderizzatore personalizzato e l'impostazione del cursore sul componente renderer non sembra funzionare (come avviene per le descrizioni comandi).Impostazione del cursore del mouse per una cella specifica JTable

Sembra funzionare per gli editori.

Non è possibile in JTable quando la cella non viene modificata o mi manca qualcosa?

risposta

7

Aggiungi un MouseMotionListener a JTable e quindi su mouseMoved() determina quale colonna utilizza la colonna di JTable columnAtPoint() e se è la colonna specifica che stai cercando, setCursor() su JTable.

+0

Accetterò la risposta, perché questo è quello che stavamo facendo già e funziona. Speravo di trovare qualcosa di un po 'più bello però. –

+0

sì, questo è più semplice. : D – gumuruh

+2

Funziona bene, ** tranne ** quando JTable è contenuto in un pannello di un JTabbedPane. In tal caso, un cursore impostato su JTable non ha alcun effetto. Questo sembra essere un bug in Swing (Java SE 1.6.0_27). –

0

Ecco un modo di cambiare il cursore in una particolare colonna in JTable:

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