Приложение захвата экрана не работает должным образом в Mac OS X - PullRequest
0 голосов
/ 31 октября 2019

У меня есть простое приложение 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, который работает нормально, все остальные распечатки на мониторах сохраняются некорректно, изображения связаны друг с другом.

...