私は、Java Swingを使ったGUIアプリケーションでは、いくつかのMouseEventを処理していますでクリックから発生しました。ずれ検出調整剤は、スイング
今私は 左または右クリックが発生した場合にのみ決定するために、のmousePressedメソッド内でマウスイベントを分析することだったので。
私のコードをした
public void mousePressed(MouseEvent me) {
if (me.getModifiers == InputEvent.BUTTON1_DOWN_MASK){
//left click
}else if (me.getModifiers == InputEvent.BUTTON3_DOWN_MASK){
//right click
}
今、私のアプリケーションは、より複雑になってきていると私は、マウスを左クリックしている間にシフトボタンが押されたかどうかを確認することも必要です。 私はこのような何かをしたいと思います:
public void mousePressed(MouseEvent me) {
if (me.getModifiers == InputEvent.BUTTON1_DOWN_MASK && me.isShiftDown()){
//left click
}
は今、これは動作しません。特に、Shiftキーを押しながら左ボタンをクリックすると、isShiftDownがtrueを返すようになりましたが、今度は修飾子も変更されてBUTTON1_DOWN_MASKとの比較が失敗するようです。
me.getModifiers == InputEvent.BUTTON1_DOWN_MASK //failed..modifiers are changed
私は間違っていますか?コードを修正するにはどうすればよいですか?
を使用する必要があります。とにかくあなたのコード(me.getModifiers()&InputEvent.BUTTON1_DOWN_MASK)はブール値を返しません – Heisenbug
申し訳ありません、あなたは正しいです。今修正されました。 –
申し訳ありません。私は少し混乱しています。逆の方法で正確に動作するようです:(me.getModifiers()&InputEvent.BUTTON1_DOWN_MASK)== 0。とにかく...あなたはポイントを得ました。ありがとう – Heisenbug