2014-10-20 1 views
-2

Как говорится в вопросе, я хочу знать, как я могу ссылаться на пустой JPanel. Вот моя маленький фрагмент кода:Как ссылаться на пустой JPanel с помощью метода getComponent()?

try 
{       
    if(tiles[3][3].getComponent(0) == null) 
    { 
     JOptionPane.showMessageDialog(null, "true"); 
    } 
} 
catch(ArrayIndexOutOfBoundsException e) 
{ 
} 

В этом примере я хочу сослаться на JPanel на 3,3 (который пуст) и GetComponent() сгенерирует исключение, видя, как нет энного компонента. getComponents не работает либо потому, что они не являются компонентом. Я пробовал с:

if(tiles[3][3].getComponents == null) 

и что еще не работал.

В частности, с этим вопросом, я хочу использовать пустую плитку в выражении if, чтобы я мог проверить, что плитка пуста, и если это так, я сделаю с ней что-то.

+1

Какой тип 'плитки'? – RealSkeptic

+0

Почему не просто "if (tiles [3] [3] == null) {"? – BarrySW19

+0

@RealSkeptic tiles - это массив JPanels. –

ответ

1

Если элемент массива имеет значение null, вам необходимо проверить, имеет ли он значение null, прежде чем пытаться получить доступ к каким-либо связанным с ним методам. Поэтому проверьте, tiles[3][3] == null.

После того, как вы установили, что он не является нулевым, вам необходимо вызвать метод getComponents() или метод getComponentCount().

Обратите внимание, что это методы, а не элементы, поэтому вы должны называть их фигурными скобками.

Метод getComponents() возвращает массив компонентов, поэтому вам нужно проверить длину массива.

getComponentCount() возвращает целое число, указывающее количество компонентов в JPanel.

Метод getComponent(N) (единственное, а не множественное число) требует, чтобы компонент с данным индексом находился внутри вашего JPanel, поэтому он не будет работать с пустой JPanel.

+0

Это не сработало EDIT: В частности, я хочу проверить компоненты JPanel и знать, как ссылаться на него, если он пуст. В этом примере плитки [3] [3] пустые. Мне просто нужно знать, как ссылаться на него в выражении if. –

+0

Вы не можете ссылаться на нуль. Если это null, это означает, что там нет никакого JPanel. – RealSkeptic

+0

Хорошо, но это не отвечает на вопрос. Позвольте мне перефразировать его, может быть, вопрос расплывчатый или неправильно сформулированный, я не знаю. Как проверить, нет ли в JPanel компонентов внутри него, не выбрасывая исключение, как я пытаюсь в этом примере? aka if (JPanel пуст) –

Смежные вопросы