Проблема с несколькими мониторами в Java

Я разрабатываю приложение с тремя мониторами, настроенными на одну систему. Два монитора имеют различное содержимое дисплея, что достигается с помощью Java GraphicsEnvironment а также GraphicsDevice классы. Теперь предполагается, что третий монитор, подключенный к системе, отображает содержимое одного из первых двух мониторов (либо Display0, либо Display1), через которые можно просматривать операции. (Этот монитор должен работать так же, как и программное обеспечение для удаленного доступа, например, vnc viewer).

Каждое графическое устройство имеет собственный JFrame для отображения, я показываю свои JComponents для этих устройств, но я не знаю, как с этим третьим монитором обращаться. Предоставляет ли Java какой-либо API или механизм, позволяющий отображать операции на одном мониторе в другом? Любая идея / понимание будет высоко ценится.

С уважением

Nikki

1 ответ

Доступ только для чтения не очень сложен. Давайте назовем 2 JFrames у вас есть frameA и frameB и кадр на новом мониторе frameC.

Вы можете отобразить содержимое A или B в C следующим образом:

JFrame frameC = new JFrame();
Container cont = c.getContentPane();
cont.setLayout(new BorderLayout());
JLabel lab = new JLabel();
cont.add(new JScrollPane(lab), BorderLayout.CENTER);
jFrameC.setSize(800,600);

Затем периодически запускайте этот код:

JFrame f = frameA; // or frameB
BufferedImage bi = new BufferedImage(f.getWidth(), f.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D g = bi.createGraphics();
f.paint(g);
g.dispose();
lab.setIcon(new IconImage(bi));

Если вы действительно хотите управлять кадрами A/B из frameC, это будет немного сложнее. Я бы наверное начал с java.awt.Robot. Java2S имеет несколько примеров, демонстрирующих использование робота.

Самая сложная часть управления "удаленным" фреймом - это трансляция событий мыши в frameC в frameA/B. Вам нужно будет рассчитать смещение на изображении, а затем перевести его обратно на панель содержимого другого фрейма.

Примечание: SwingUtilities имеет несколько методов, помогающих с переводом координат.

Другие вопросы по тегам