Tôi đang xử lý một số MouseEvent trong ứng dụng GUI bằng cách sử dụng Java Swing.Phát hiện các công cụ sửa đổi Shift trên MouseEvent được tạo ra từ cú nhấp chuột trong swing
Kể từ bây giờ tôi đã phân tích các sự kiện chuột bên trong phương pháp mousePressed, chỉ để xác định nếu một nhấp chuột trái hoặc phải xảy ra.
Mã của tôi là:
public void mousePressed(MouseEvent me) {
if (me.getModifiers == InputEvent.BUTTON1_DOWN_MASK){
//left click
}else if (me.getModifiers == InputEvent.BUTTON3_DOWN_MASK){
//right click
}
Bây giờ ứng dụng của tôi đang trở thành phức tạp hơn và tôi cũng cần phải kiểm tra xem nút Shift được nhấn trong khi chuột được nhấp chuột trái. Tôi muốn thực hiện một việc như sau:
public void mousePressed(MouseEvent me) {
if (me.getModifiers == InputEvent.BUTTON1_DOWN_MASK && me.isShiftDown()){
//left click
}
Bây giờ việc này không hiệu quả. Đặc biệt nếu tôi nhấp vào nút bên trái trong khi giữ SHIFT isShiftDown trả về đúng (rigth. Tôi đã mong đợi rằng), nhưng bây giờ có vẻ là modifiers cũng thay đổi và so sánh với BUTTON1_DOWN_MASK thất bại.
me.getModifiers == InputEvent.BUTTON1_DOWN_MASK //failed..modifiers are changed
Tôi đang làm gì sai? Làm thế nào tôi có thể sửa mã của tôi?
bạn là đúng. Dù sao mã của bạn (me.getModifiers() & InputEvent.BUTTON1_DOWN_MASK) không trả về một boolean – Heisenbug
Xin lỗi, bạn nói đúng. Bây giờ đã được sửa. –
xin lỗi. Tôi hơi bối rối. Dường như hoạt động chính xác theo cách ngược lại: (me.getModifiers() & InputEvent.BUTTON1_DOWN_MASK) == 0. Dù sao ... bạn có điểm. thanks – Heisenbug