質問: inputevent.button3_mask ) { // この判定には入らない。 system.out.println( "右ボタンも押されています。" ) ; } } } ※(大雑把に書くとこんな感じです。) 個人的にはjavaのバージョンに依存するものなのかなぁと考えているのですが、 1.3.1では駄目なのでしょうか? 乱文、雑文ではありますが、ぜひともご教授をお願いします。
回答: 自分の勘違いだったらごめんなさい。 (実際に動かしてはいないのですが...。) 左右同時の場合は、この判定には入るとありますが本当に入りますか? int modifiers = e.getmodifiers(); としているので、modifiersには左ボタン定数の値が入ってますよね? そうすると最初のif文の条件の ( modifiers & inputevent.button1_mask ) == inputevent.button1_mask はtrueになります。 でもその次の条件の ( modifiers & inputevent.button3_mask ) == inputevent.button3_mask はfalseになりませんか?この条件を判断するときの modifiers は左ボタン定数のままですよね? 大雑把に書いたとのことなので、実際はこうではないのかもしれませんが、 mousepressed() が呼ばれるのは1つのボタンが押されたときですので、同時押しを判定するとしたら 左ボタン押したフラグ と 右ボタン押したフラグ を作って、 mousepressed()で押されたボタンのフラグを立てて、もう一方のボタンのフラグの状態を判別する。 mousereleasee()で話されたボタンのフラグを下げる。 というような感じにしないといけないのではないでしょうか???