Проверьте наличие нулевого компонента в панели Java Swing - PullRequest
1 голос
/ 13 сентября 2011

Я создаю динамические кнопки и обработчики динамических кнопок внутри JPanel и, таким образом, снова выбираю их, используя метод Panel.getComponentAt (x, y).

Этот метод, очевидно, может выбирать из области, в которой ничего нет, и это будет возвращать исключение нулевого указателя, как и ожидалось.

Мне нужен способ проверить, выбирает ли он фактический компонент, чтобы он не выдавал ошибку. Должен ли я просто использовать здесь блок try и catch? или есть что-то более элегантное? Я попытался «isValid ()» по прихоти, и это не то, что я ищу.

Большое спасибо

1 Ответ

3 голосов
/ 13 сентября 2011

С javadoc для Container#getComponentAt()

null, если компонент не содержит позицию.Если в запрошенной точке нет дочернего компонента, и точка находится в пределах контейнера, возвращается сам контейнер;в противном случае возвращается самый верхний потомок.

, поэтому вы можете сделать

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

if ( c!= null && c != Panel1)
{
   // a child component was found
   ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...