java - 如何确定顶部是什么矩形?

标签 java swing overlap rectangles

我目前有一个程序可以绘制重叠的矩形,并且想知道是否有一种简单的方法来确定哪个形状位于顶部(最明显)。这让我很困惑,因为在处理 3D 时没有可以使用的 z 轴。

overlapping rectangles

我尝试循环遍历矩形并使用 .contains 方法,但它返回特定点下的所有矩形,而不是最高级别的矩形。

我也搜索过,但也许我使用了错误的关键字?

最佳答案

通常,当人们绘制代码时,他们会执行以下操作:

列出矩形= ....

for (int i = 0; i < rectangles.size(); i++)
    //paint the rectangle

因此,如果您想搜索一个点来确定它所在的矩形,那么您应该使用:

for (int i = rectangles.size() - 1; i >= 0; i--)
{

    if (rectangles.get(i).contains(yourPoint))
    {
         // do something
         break;
    }
}

从末尾开始将为您提供最后一个绘制的矩形,这意味着它位于所有其他矩形的顶部。

关于java - 如何确定顶部是什么矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15607213/

相关文章:

java - 为什么 JPanel 会自动重绘?

java - CommandLineRunner 中的依赖注入(inject)失败

java - 我可以从 System.nanoTime 合理预期的最差分辨率是多少?

java - 如何将 JPanel 及其组件另存为 JPEG

java - 在保持对文件的访问权限的同时编辑文件名在 JComboBox 中的显示方式

android - ExpandableListView 中的子项重叠会不自觉地导致复选框在单独的组中 checkin

html - 如何在 CSS 中重叠附加的 li 元素

html - 需要 css 重叠内容

java - 如何在没有安全警告的情况下发布 Java Web Start jnlp 应用程序?

java - RX Java Flowable 中的所有元素达到特定条件