Я создал таблицу и установил курсор на определенный столбец. Курсор отображается правильно при первом отображении таблицы, но если модель таблицы изменяется и таблица перерисовывается, курсор не отображается в соответствии с кодом, вместо этого курсор по умолчанию отображается во всех столбцах.
Попытка отладки кода, вызов jtable.setcursor выполняется правильно, но курсор не отображается на экране.
Установите курсор через MouseMotionListener внутри метода MouseMoved ().
Любая помощь приветствуется.
Мои последние наблюдения:
Я обнаружил, что проблема возникает, когда любой другой диалог появляется над полосой прокрутки, которая отображает таблицу. Если JFileChooser или JDialog запускается поверх панели, содержащей JScrollPane для JTable, после закрытия JFileChooser или JDialog курсор на таблице не отображается в соответствии с кодом, это происходит даже в том случае, если модель таблицы вообще не изменяется.
Ниже приведен мой код для установки курсора:
final Cursor handCursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);
final Cursor defaultCursor = Cursor.getDefaultCursor();
table.addMouseMotionListener(new MouseAdapter()
{
public void mouseMoved(MouseEvent e)
{
int cModel = table.columnAtPoint(e.getPoint());
int cView = table.convertColumnIndexToView(cModel);
if (cView == 1)
{
table.setCursor(handCursor);
}
else
{
table.setCursor(defaultCursor);
}
}
});