gpt4 book ai didi

java - 如何确定 Swing 鼠标事件发生在哪个监视器中?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:52:30 24 4
gpt4 key购买 nike

我在一个组件上有一个 Java MouseListener 来检测鼠标按下。如何判断鼠标按下发生在哪个监视器上?

@Override
public void mousePressed(MouseEvent e) {
// I want to make something happen on the monitor the user clicked in
}

我想要实现的效果是:当用户在我的应用程序中按下鼠标按钮时,弹出窗口会显示一些信息,直到松开鼠标。我想确保这个窗口位于用户点击的位置,但我需要调整当前屏幕上的窗口位置,以便整个窗口可见。

最佳答案

可以从java.awt.GraphicsEnvironment获取显示信息.您可以使用它来获取有关本地系统的信息。包括每个监视器的边界。

Point point = event.getPoint();

GraphicsEnvironment e
= GraphicsEnvironment.getLocalGraphicsEnvironment();

GraphicsDevice[] devices = e.getScreenDevices();

Rectangle displayBounds = null;

//now get the configurations for each device
for (GraphicsDevice device: devices) {

GraphicsConfiguration[] configurations =
device.getConfigurations();
for (GraphicsConfiguration config: configurations) {
Rectangle gcBounds = config.getBounds();

if(gcBounds.contains(point)) {
displayBounds = gcBounds;
}
}
}

if(displayBounds == null) {
//not found, get the bounds for the default display
GraphicsDevice device = e.getDefaultScreenDevice();

displayBounds =device.getDefaultConfiguration().getBounds();
}
//do something with the bounds
...

关于java - 如何确定 Swing 鼠标事件发生在哪个监视器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1248386/

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