想象一下,您添加了JScrollPane
和许多JLabel
或任何其他JComponent
。
您如何检查某个组件是否可见/部分可见/用户不可见?(滚动)
我试过谷歌但找不到简单的解决方案。是否有一些现有的方法我缺少或我们必须处理坐标和矩形比较?
UPD:以下内容不适用于我的情况。它似乎与JLabel.setVisible(true / false)有关,但不在JScrollPane内部
JLabel.isVisible();
答案 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提醒我:-)