2009-04-07 7 views
5

У меня есть JTable с набором неизменяемых ячеек, и я хочу, чтобы все ячейки в определенном столбце отображали другой указатель мыши, пока мышка нависает над ними. Я уже использую собственный рендерер, и установка курсора на компонент рендеринга не работает (как и для всплывающих подсказок).Установка курсора мыши для конкретной ячейки JTable

Кажется, это работает для редакторов.

Возможно ли это в JTable, когда ваша камера не редактируется, или я что-то не хватает?

ответ

7

Добавить MouseMotionListener в JTable, а затем на mouseMoved() определить, в каком столбце он использует столбец JTable(), а если это конкретный столбец, который вы используете, setCursor() в JTable.

+0

Я принимаю ответ, потому что это то, что мы уже делаем, и это работает. Однако я надеялся найти что-то немного приятное. –

+0

да, это проще. : D – gumuruh

+2

Это хорошо работает **, кроме **, когда JTable содержится в панели JTabbedPane. В этом случае курсор, установленный на JTable, не действует. Это похоже на ошибку в Swing (Java SE 1.6.0_27). –

0

Вот один из способов изменения курсора на определенный столбец в JTable:

if(tblExamHistoryAll.columnAtPoint(evt.getPoint())==5) 
{ 
    setCursor(Cursor.HAND_CURSOR); 
} 
else 
{ 
    setCursor(0); 
} 
Смежные вопросы