如何检查JScrollPane中的JComponent对用户是否可见?

时间:2012-11-29 14:19:44

标签: java swing jscrollpane visibility jcomponent

想象一下,您添加了JScrollPane和许多JLabel或任何其他JComponent

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

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

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

JLabel.isVisible();

1 个答案:

答案 0 :(得分:11)

查看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提醒我:-)