我已经在主Jframe上实现了右键单击以打开菜单侦听器,除一个问题外,它工作正常。五分之一(给予或接受)的点击没有响应,这对于用户而言可能非常烦人。这是我的代码:
contentPane = new JPanel();
contentPane.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON3)
{
//Do Stuff
}
}
});
你能帮我么
最佳答案
您不会从contentPane
子组件获得点击。
我认为您的问题是您已在面板中添加了一些内容。当用户单击子组件所占据的区域时,该子组件将获得click事件。
快速修复:我建议您将相同的鼠标侦听器添加到所有子组件。
您不是在“点击”
单击是指按下鼠标并快速释放时。如果您不小心,则可能会收到(例如)“按下,移动,释放”而不是“单击”的事件。
快速解决:使用mouseReleased
事件代替。
关于java - Java Swing中的MouseListener有时不响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11453240/