我在JXTreeTable上加载了一个JPanel。我想确定JPanel是否与JXTreeTable的特定单元格重叠。我试着检索X和Y分量并进行比较。然而,当我检查JPanel的最小X和Y坐标时,它们总是0.0。我想不通。除了比较坐标值之外,还有别的吗?
您应该能够使用Rectangle
来帮助确定组件是否重叠。
即
Rectangle panelBounds = panel.getBounds();
Rectangle cellBounds = getRowBounds(row); // getPathBounds(path);
if (panelBounds.intersects(cellBounds)) {
// We have a collision
}
现在,更大的问题是,X/Y返回值总是0。这意味着getBounds
方法返回的Rectangle
也将返回0的x/y。
您将需要分享一些代码来向我们展示如何布置此组件。
只有在以下情况下才能确定JComponents
坐标:
-
已在屏幕上可见
-
调用后方法
pack()
为了获得更好的帮助,请尽快发布SSCCE