2016-03-09 77 views
0

我使用jlabels創建按鈕,所以我可以將圖像製作成一種按鈕。唯一的問題是,是jlabels是方形的,因此,如果我點擊圖片不包含的廣場內的某個地方,它仍然運行jlabel.MouseClickEvent。有沒有解決這個問題,或者我可以使用的另一個組件?Jlabel額外的可點擊空間

Ex。如果我在圈子沒有顯示的角落點擊this,但廣場仍在,那麼事件就會發生。

任何修補程序/使用不同的組件?謝謝!

+0

請注意,我確定背景是透明的 – CrazedCoder

回答

2

如果您只是使用圖像的簡單形狀,那麼您可能可以使用Playing With Shapes中的Shape Component

ShapeComponent只會響應形狀邊界內的鼠標事件。

否則解決方案是重寫JLabel的contains(...)方法來檢查鼠標點是否在圖像的邊界,或者在您的情況下,如果該位置的像素不透明。

+0

我看到了。非常豐富。非常感謝你! – CrazedCoder

+0

@CrazedCoder,我剛剛添加了一個關於重寫'contains(...)'方法以檢查不透明像素的註釋。 – camickr