【问题标题】:Check for null Component in Java Swing Panel在 Java Swing 面板中检查空组件
【发布时间】:2011-11-16 11:14:57
【问题描述】:

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

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

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

非常感谢

【问题讨论】:

  • getComponentAt 本身不会抛出 NullPointerException。它只返回null。那是不同的。

标签: java swing components


【解决方案1】:

来自javadocContainer#getComponentAt()

如果组件不包含该位置,则为 null。如果没有 请求点处的子组件,并且该点位于 容器的边界,容器本身被返回;否则 返回最上面的孩子。

这样你就可以了

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

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

【讨论】:

  • Panel1 应替换为 panel1
猜你喜欢
  • 1970-01-01
  • 2013-05-21
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-15
  • 1970-01-01
  • 2012-04-13
相关资源
最近更新 更多