在Java Swing Panel中检查null Component

时间:2011-09-13 19:32:03

标签: java swing components

我在JPanel中创建动态按钮和动态按钮处理程序,因此使用“Panel.getComponentAt(x,y)”方法再次选择它们。

这个方法显然可以从一个没有任何内容的区域中进行选择,这会像预期的那样返回空指针异常。

我需要一种方法来检查它是否正在选择一个实际组件,因此它不会抛出错误,我应该在这里使用try和catch块吗?还是有更优雅的东西?我一时兴起试过“isValid()”,这似乎并不是我想要的。

非常感谢

1 个答案:

答案 0 :(得分:3)

javadoc来自Container#getComponentAt()

  如果组件不包含位置,则

null。如果没有   在请求的点上的子组件,该点在   容器本身返回的容器边界;除此以外   返回最顶层的孩子。

所以你可以做到

Component c = Panel1.getComponentAt(x, y);

if ( c!= null && c != Panel1)
{
   // a child component was found
   ...
}