我在JPanel中创建动态按钮和动态按钮处理程序,因此使用“Panel.getComponentAt(x,y)”方法再次选择它们。
这个方法显然可以从一个没有任何内容的区域中进行选择,这会像预期的那样返回空指针异常。
我需要一种方法来检查它是否正在选择一个实际组件,因此它不会抛出错误,我应该在这里使用try和catch块吗?还是有更优雅的东西?我一时兴起试过“isValid()”,这似乎并不是我想要的。
非常感谢
答案 0 :(得分:3)
javadoc来自Container#getComponentAt()
如果组件不包含位置,则null。如果没有 在请求的点上的子组件,该点在 容器本身返回的容器边界;除此以外 返回最顶层的孩子。
所以你可以做到
Component c = Panel1.getComponentAt(x, y);
if ( c!= null && c != Panel1)
{
// a child component was found
...
}