Во многих настройках мультимониторинга с мониторами различной высоты стойки вертикальные положения мониторов можно настроить в программном обеспечении так, чтобы их графика правильно выравнивалась. Вертикальное смещение добавляется к координатам мыши Windows, чтобы дать этот эффект; показано в фиолетовом на диаграмме: Я создаю программу, которая должна знать, когда мышь пользователя достигла вершины любого из их мониторов. Я пробовал использовать MouseInfo.getPointerInfo().getLocation().y==0
, но это не сработает, когда мониторы были смещены в программном обеспечении, потому что верхняя часть монитора может не всегда равна нулю.Java - Как определить вертикальное перемещение некоторых мультимониторных установок?
Есть ли надежный и эффективный способ определения этого смещения на нескольких дисплеях?
не проверял, но в соответствии с Документами, [ 'GraphicsConfiguration.getBounds()'] (https://docs.oracle.com/javase/8/docs/api/java/awt/GraphicsConfiguration .html # getBounds--) звучит как то, что вы ищете. Вы должны иметь возможность получать все мониторы с помощью ['GraphicsEnvironment.getLocalGraphicsEnvironment() .getScreenDevices()'] (https://docs.oracle.com/javase/8/docs/api/java/awt/GraphicsEnvironment.html), и их конфигурации с помощью '' .getConfigurations() '] (https://docs.oracle.com/javase/8/docs/api/java/awt/GraphicsDevice.html#getConfigurations--), но я ик как выбрать из этого массива. – Siguza
@Siguza Спасибо за ваш комментарий, он полностью ответил на мой вопрос, и я смог выполнить то, что я пытался сделать. Сможете ли вы написать это в формате ответа, чтобы я мог дать вам надлежащий кредит? –
Честно говоря, я не хочу менять настройку своего монитора, чтобы проверить правильность ответа, который я бы написал, поэтому я не дал ему ответа в первую очередь. Не стесняйтесь создавать свой собственный ответ с этой информацией, хотя я просто рад помочь. – Siguza