0

ユーザーが画面に触れたときにダイアログを表示していて、ユーザーがダイアログの外のどこかに触れたときにダイアログを破棄したい。に設定setDisposeWhenPointerOutOfBounds()しましたtrueが、デフォルトではそうです。そして、イベントで次のコードを書きましたpointerReleased()が、ユーザーがダイアログの外で画面に触れるたびに、ダイアログは破棄されますが、x、y がダイアログ内にある場合にのみ実行されるコードを実行する必要はありません。

public void pointerReleased(int x, int y) {
    dispose();
    if (contains(x, y)) {
        actionCommand((cmds[l.getSelectedIndex()]));
    }
}
4

1 に答える 1

1

バグはチェック中だったcontains(x,y)。私はそれを交換しthis.getContentPane.contains(x,y)、それは問題を修正しました

于 2010-02-27T09:44:25.870 に答える