Java/Swing:JTable。rowAtPoint对于表外的点不能正常工作?
我用下面的代码从一个JTable中获取一行,该JTable由DrageEvent为某个组件C中的DropTarget生成,该组件可能是JTable,也可能不是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);
}
系统。出来println现在只是个黑客。我想知道的是为什么这个系统。出来println并不总是打印“第1行”。当表为空时,它是空的,但如果我将某个内容拖到表的标题行上,就会得到带有“行0”的println。这好像是个虫子。。。还是我不明白rowAtPoint()
是如何工作的
# 1 楼答案
你有哪个版本的Java
在我看来像个虫子:看http://bugs.sun.com/view_bug.do?bug_id=6291631
如果您的情况是这样,您可以添加额外的支票: