如何确定 Swing 鼠标事件发生在哪个监视器中?
我在组件上有一个 Java MouseListener 来检测鼠标按下。 如何判断鼠标按下发生在哪个显示器上?
@Override
public void mousePressed(MouseEvent e) {
// I want to make something happen on the monitor the user clicked in
}
我想要实现的效果是:当用户在我的应用程序中按下鼠标按钮时,弹出窗口会显示一些信息,直到释放鼠标。 我想确保该窗口位于用户单击的位置,但我需要调整当前屏幕上的窗口位置,以便整个窗口可见。
I have a Java MouseListener on a component to detect mouse presses. How can I tell which monitor the mouse press occurred in?
@Override
public void mousePressed(MouseEvent e) {
// I want to make something happen on the monitor the user clicked in
}
The effect I'm trying to achieve is: when the user presses the mouse button in my app, a popup window shows some info, until the mouse is released. I want to ensure this window is positioned where the user clicks, but I need to adjust the window position on the current screen so that the entire window is visible.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
也许 e.getLocationOnScreen(); 将工作? 它仅适用于 java 1.6。
Maybe e.getLocationOnScreen(); will work? It's only for java 1.6.
将其留在这里以帮助其他可能正在搜索此内容的人:
Leaving this here to help anyone else who may be searching for this:
从 Java 1.6 开始,您可以使用 getLocationOnScreen,在以前的版本中,您必须获取生成事件的组件的位置:
您必须使用 GraphicsEnvironment 类来获取屏幕的边界。
Since Java 1.6 you can use getLocationOnScreen, in previous versions you must get the location of the component that generated the event:
You will have to use the GraphicsEnvironment class to get the bound of the screen.
Rich的回答帮助我找到了完整的解决方案:
Rich's answer helped me find a whole solution:
您可以从 java.awt 获取显示信息。图形环境。 您可以使用它来获取有关本地系统的信息。 包括每个监视器的边界。
You can get display information from java.awt.GraphicsEnvironment. You can use this to get a information about your local system. Including the bounds of each monitor.