У меня есть простое приложение Swing, которое захватывает один из 3 мониторов (0 по умолчанию - монитор Mac, физически подключены 1 и 2). Проблема в том, что он работает только на главном мониторе, для других 2 он не получает полных границ и не смешивает изображения.
Он работал дома, когда я транслировал на Apple TV, но когда я подключил 2 другихмониторы (разные разрешения), он смешивает мой вывод странным образом.
Характеристики: MacBook Pro 2015 - 15 дюймов, подключен к монитору (2 КБ) и другому (4 КБ).
Используется метод, описанный ниже, когда флажок установлен, снимает устройство 0,1 или 2
if (scr1.isSelected()) {
Robot robot;
try {
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] devices = env.getScreenDevices();
GraphicsConfiguration mon1 = devices[0].getDefaultConfiguration();
Rectangle rect = mon1.getBounds();
robot = new Robot();
BufferedImage screenShot = robot.createScreenCapture(rect);
String path = saveddest + "/Step" + text1.getText() + "_" + text2.getText() + ".png";
System.out.println(path);
ImageIO.write(screenShot, "png", new File(path));
Integer SuBStep = Integer.parseInt(text2.getText()) + 1;
text2.setText(SuBStep.toString());
} catch (Exception ex) {
ex.printStackTrace();
}
}
Ожидается: когда установлен любой флажок, при съемке снимка экрана aполное изображение на дисплее сохраняется
Фактически: помимо монитора Macbook, который работает нормально, все остальные распечатки на мониторах сохраняются некорректно, изображения связаны друг с другом.