gpt4 book ai didi

java - 在没有 mousePressed 的情况下检测 mouseReleased

转载 作者:行者123 更新时间:2023-11-29 03:33:04 26 4
gpt4 key购买 nike

我在一个组件上有一个 MouseListener,我想监听 mouseReleased 事件,而不需要 mousePressed 事件。我如何检测用户是否按下了另一个按钮、桌面或其他窗口(或其他任何东西)并在我的组件上释放?

例如,在下面的示例中,如何让它打印“cool”而不是“Not cool”?

titleBar.addMouseListener(new MouseListener()
{
@Override public void mouseReleased(MouseEvent e)
{
System.out.println("cool");//Detect this
}
@Override public void mousePressed(MouseEvent e)
{
System.out.print("Not ");//Without this having to happen first
}
@Override public void mouseExited(MouseEvent e)
{
}
@Override public void mouseEntered(MouseEvent e)
{
}
@Override public void mouseClicked(MouseEvent e)
{
}
});

最佳答案

当 mousePressed 源自另一个应用程序时,您无法监听 mouseReleased。这是因为释放鼠标时 Java 应用程序将没有焦点。 Java con 仅在获得焦点时才处理事件。

在 Java 应用程序中,您可以监听所有 mouseReleased 事件。但是,在这种情况下,将为生成 mousePressed 事件的组件生成 mouseReleased 事件。因此,您还需要监听 mouseEntered 和 mouseExited 事件。因此,如果 mouseReleased 事件之前有 mouseEntered 事件,您将需要使用 mouseEntered 事件的源来获取 mouseReleased 事件的对象。

为此,您可以使用 AWTEventListener。参见 Global Event Listeners获取更多信息。

关于java - 在没有 mousePressed 的情况下检测 mouseReleased,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17034884/

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