У меня есть этот код для получения строки из JTable, сгенерированной DragEvent для DropTarget в некотором компоненте C, который может быть или не быть JTable:
public int getRowFromDragEvent(DropTargetDragEvent event) {
Point p = event.getLocation();
if (event.getSource() != this.table)
{
SwingUtilities.convertPointToScreen(p,
event.getDropTargetContext().getComponent());
SwingUtilities.convertPointFromScreen(p, this.table);
if (!this.table.contains(p))
{
System.out.println("outside table, would be row
"+this.table.rowAtPoint(p));
}
}
return this.table.rowAtPoint(p);
}
System.out.println это просто хак прямо сейчас.Что мне интересно, так это то, что System.out.println не всегда печатает «строку -1».Когда таблица пуста, это так, но если я перетаскиваю что-то в строку заголовка таблицы, я получаю println со «строкой 0».Это похоже на ошибку ... или я не понимаю, как rowAtPoint()
работает?