0

Javaでそのような関数を作成する最良の方法は何ですか? 私は JPanel とこの下の画像を Rectangle2D オブジェクト (黒いフレーム) を持つ ImageIcon として持っています。

Rectangle2D を使用したボタン

ここで、フレームのいずれかの内側を押したかどうかを簡単に確認し、この情報を ActionListener 関数で次のように使用します。

public void ActionPerformed(ActionEvent e) {
    Object obj = e.getSource();
    if(obj == DownloadButton) {
        doSomething();
    }
}

それで、そのようなことを行うためのより良い、おそらくより速い方法はありますか? または、以下のような関数を作成する必要があります。

public void checkCoordinaes(int x, int y) {
    if(button1.contains(x, y)) { 
        isDownloadButtonClicked = true; 
    }
}

これをActionListenerにリンクします(どのように?)?

4

1 に答える 1

0

イメージを含む単一の JPanel として実装する必要がある場合は、MouseEvents をリッスンする MouseListener を作成する必要があります。これらは、マウス クリックの xy 座標を提供し、これを checkCoordinates() 関数に渡すことができます。

public void mouseClicked(MouseEvent e)
{
    checkCoordinates(e.getX(), e.getY());
}
于 2013-05-31T05:24:59.350 に答える