* .pngイメージを表示するカスタムコンポーネントがあります。画像には透明で不透明な領域があります。コンポーネントにActionListener(またはMouseClickListener)を追加すると、コンポーネントの透明領域をクリックしてもイベントが発生します。視覚的には、コンポーネントの外側をクリックするように見えます。 どのような領域をクリックに反応させるべきか宣言することができますか?Java。スイング。 JComponentのクリック可能な領域
イベントオブジェクトからの座標をイメージから取得し、その透明度を確認する方法について読んだことがあります。それは難しく、効果がないようです。
おそらく、このコンポーネントのカスタムボーダーなどを定義していますか?
あなたは、マウスクリックの座標が、私はそのような場合について書いた非透明領域 – Alex
から来たかどうかを確認するためにあなたのリスナー内のチェックを追加しようとすることができます。それは十分に複雑です。 mouseEnter()ハンドラでチェックする場合は、マウスの各点を何度も確認してください。そして、マウスの位置ごとに、画像からそのピクセルを取得し、透明性をチェックする必要があります。多くのオーバーヘッドがあります。 –
「オーバーヘッドはかなりありますが、実際にはJavaは自動的にすべての画像を処理します。あるいは、あなたにとって重要なこの特定のケースに対してJavaが自動的に行います。その2番目の方が理にかなっています! –