私は画像のみを使用しており、アプリケーションを表示するために使用しているウィンドウのサイズは、システムによって異なる場合があります。プログラムのメインビューでのクリックをリッスンしているマウスアクションリスナーがあります。ボタンのような角の丸い長方形があります。すべてのシステムで、マウスアクションリスナーが画像全体ではなく、角の丸い長方形の領域のみをリッスンするようにしたいと思います。タイトルにあるように、画像全体にコンテンツが含まれているわけではありません。特に、角が画像の一部であるようには見えないため、ユーザーが画像の一部をクリックすることを許可したくありません。コンテンツが表示され、コンテンツのある部分をクリックした場合と同じ結果が得られます。私の画像はこれに似ています(出典:youthedesigner.com)
だから私は、ユーザーがボタンの周りの素敵なものではなく、画像内のボタンをクリックした場合にのみ、プログラムに何かをさせたいのです。これは私が今クリックを聞くために持っているものです:
@Override
public void mouseClicked(MouseEvent e) {
for(int i = 0; i <= 200; i++) {
if(e.getY() >= 100+i && e.getY() <= 300) {
if(e.getX() >= 10+100-Math.pow(10000-(Math.pow((i-100),2.0)),.5)) && e.getX() <= 10+400-Math.pow(10000-(Math.pow((i-100),2.0)),.5))) {
// do stuff
i = 201;
}
}
}
}
コードで使用している数式は、110-(10000-(y-100)^ 2)^(1/2))のようになります。これは、グラフ化すると、開き括弧のようになり、410 +(10000- (y-100)^ 2)^(1/2))、これは最初のグラフから400単位離れた括弧のように見えます。
コードは私のシステムでは正常に機能しますが、他のシステムではまったく機能せず、画像の拡大縮小に対応するために、聞いている場所をどのように移動できるのか興味があります。
あなたが提供できるどんな助けにも感謝します。