Jlabel Extra Clickable Space

Я создаю кнопки, используя jlabels, так что я могу сделать изображение в виде кнопки. Единственная проблема заключается в том, что jlabels квадратные, поэтому, если я щелкну где-нибудь в квадрате, где изображение не содержится, он все равно запускает jlabel.MouseClickEvent. Есть ли какое-то исправление для этого или другой компонент, который я мог бы использовать?

Ex. Если я щелкну это в углу, где круг не отображается, но квадрат все еще там, то событие запускается.

Какие-либо исправления / различные компоненты для использования? Спасибо!

1 ответ

Решение

Если вы просто используете простые формы для изображений, то вы можете использовать Shape Component найдено в игре с формами.

ShapeComponent будет реагировать только на события мыши в пределах формы.

В противном случае решение состоит в том, чтобы переопределить contains(...) метод вашей JLabel, чтобы проверить, находится ли точка мыши в границах вашего изображения, или в вашем случае, если пиксель в этом месте не прозрачен.

Другие вопросы по тегам