Alexis Rodriguez Asked: 2020-03-06 11:17:26 +0800 CST 2020-03-06 11:17:26 +0800 CST 2020-03-06 11:17:26 +0800 CST 如何在java中检测右键单击JButton 772 我一直在寻找一种方法,但他们都给我一个错误,我希望你能帮我解决这个问题。我正在做扫雷,我需要它,当我右键单击它时,我会得到一个警告标志。 JButton boton = new JButton(); java 2 Answers Voted Best Answer Stefan Nolde 2020-03-06T11:42:50+08:002020-03-06T11:42:50+08:00 您可以通过添加 aActionListener和检查修饰符来做到这一点: boton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if ((e.getModifiers() & 4) !=0){ // boton derecho } } }); 左键是getModifiers() & 16和中键getModifiers() & 8。 或者,您可以使用MouseListener: MouseListener mouseListener= new MouseListener() { @Override public void mouseReleased(MouseEvent e) { } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseClicked(MouseEvent e) { System.out.println(e.getButton()); // MouseEvent.BUTTON3 es el boton derecho } }; boton.addMouseListener(mouseListener); 如果您使用onMousePressed并且onMouseReleased您只能在按下按钮时显示您的信息。 Quantum Bit 2020-12-15T09:43:54+08:002020-12-15T09:43:54+08:00 以另一种方式解释,您只需创建所需按钮的 mauseclicked 事件,并使用条件函数获取正在按下的鼠标按钮,例如: 私人无效 ClickaMouseClicked(java.awt.event.MouseEvent evt) { if(evt.getButton() == 3) //3 es para click derecho pero puedes captar hasta 5 //botones del mause { System.out.println("Se presiono el click derecho"); } }
您可以通过添加 a
ActionListener
和检查修饰符来做到这一点:左键是
getModifiers() & 16
和中键getModifiers() & 8
。或者,您可以使用
MouseListener
:如果您使用
onMousePressed
并且onMouseReleased
您只能在按下按钮时显示您的信息。以另一种方式解释,您只需创建所需按钮的 mauseclicked 事件,并使用条件函数获取正在按下的鼠标按钮,例如:
私人无效 ClickaMouseClicked(java.awt.event.MouseEvent evt) {