正如问题所述,我想知道如何引用空的JPanel。这是我的小代码片段:
try
{
if(tiles[3][3].getComponent(0) == null)
{
JOptionPane.showMessageDialog(null, "true");
}
}
catch(ArrayIndexOutOfBoundsException e)
{
}
在这个例子中,我想在3,3(它是空的)引用JPanel,并且getComponent()将抛出异常,因为没有第n个组件。 getComponents也不起作用,因为它们不是组件。我尝试过:
if(tiles[3][3].getComponents == null)
那仍然没有用。
特别是对于这个问题,我想在if语句中使用一个空的tile,以便我可以检查tile是否为空,如果是,那么我将对它做一些事情。
答案 0 :(得分:1)
如果数组项可能为null,则在尝试访问与其相关的任何方法之前,必须检查它是否为null。因此,请检查tiles[3][3] == null
。
确定它不为空后,您必须调用getComponents()
方法或getComponentCount()
方法。
请注意,这些是方法,而不是元素,因此您必须使用大括号调用它们。
getComponents()
方法返回一个组件数组,因此您必须检查数组的长度。
getComponentCount()
返回一个整数,表示JPanel中的组件数。
方法getComponent(N)
(单数,而不是复数)要求具有给定索引的组件在JPanel中,因此它不适用于空的JPanel。