gpt4 book ai didi

java - MouseListener:判断是否 mousePressed .getSource() == MouseReleased .getSource()

转载 作者:行者123 更新时间:2023-12-01 19:47:57 25 4
gpt4 key购买 nike

如何检查用户是否在按下鼠标的同一按钮上释放了鼠标?

我想处理用户单击button1,继续按住鼠标按钮,然后拖动到button2并在button2上释放鼠标的情况,其中 button1button2 是我添加了 MouseListener 的 JButton。

That is: if the user clicks button1, and releases the mouse on button1, do action1().

And: if the user clicks button1, and releases the mouse on button2, do nothing.

我尝试检查是否ePressed.getSource() == eReleased.getSource(),但拖动鼠标后源似乎保持不变。

见下文:

// My thoughts are that if the button is released on the source it was
// pressed, it should print "test", however "test" prints even if I
// drag the mouse outside of the bounds of the button and release it
public JButton getSqaure() {
JButton jb = new JButton();

jb.addMouseListener(new MouseAdapter() {
boolean pressed = false;

@Override
public void mousePressed(MouseEvent e) {
if (SwingUtilities.isRightMouseButton(e)) {
pressed = true;
}
}

@Override
public void mouseReleased(MouseEvent e) {
if (e.getSource() == jb && pressed) {
System.out.println("test");
}

pressed = false;
}
});

jb.setPreferredSize(new Dimension(50,50));

return jb;
}

最佳答案

当然 - 我已经回答了我自己的问题:

@Override
public void mouseExited(MouseEvent e) {
pressed = false;
}

@Override
public void mouseEntered(MouseEvent e) {
pressed = true;
}

关于java - MouseListener:判断是否 mousePressed .getSource() == MouseReleased .getSource(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59108100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com