7

想象一下,您添加了一个JScrollPane和许多JLabels 或任何其他JComponents。

您将如何检查某个组件是否对用户可见/部分可见/不可见?(滚动)

我试过谷歌,但找不到简单的解决方案。我是否缺少一些现有的方法,或者我们必须处理坐标和矩形比较?

UPD:以下不适用于我的情况。它似乎与 JLabel.setVisible(true/false) 有关,但不在 JScrollPane 内

JLabel.isVisible();
4

1 回答 1

14

看看 JComponent java doc:

Rectangle r = child.getVisibleRect();
if (r.getSize().equals(child.getSize())) {
   // fully visible
} else if (r.isEmpty()) {
   // not visible
} else {
  // partly visible
}

编辑

将不可见的条件更改为使用 Rectangle api - 感谢@mKorbel 提醒我:-)

于 2012-11-29T14:32:39.803 回答