2016-07-14 6 views
2

Я купил и установил второй монитор. Когда я открываю затмение и перетаскиваю его на второй монитор, если я запускаю приложения качания, они появляются на первом.Параметр поворота для нескольких мониторов

  1. Есть ли параметр поворота, чтобы программы запускались на втором мониторе или, по крайней мере, на мониторе, где работает затмение?
  2. Если я перемещаю программу качания с первого монитора на второй, она становится черной. Почему это?

Дополнительная информация:

Мои драйверы, а также затмение в актуальном состоянии.

Монитор 1: Встроенный монитор для ноутбука, QHD, 17 '. Все масштабируется, включая качели. Обработано интегрированной графикой Intel >> (Windows решает, что это нельзя изменить)

Монитор 2: Внешний монитор HP 22 'FHD. Когда 51% окна перемещается на этот экран, оно масштабируется (но все же по сравнению с оригинальным размером, обычно для 1080p). Ручки на NVIDIA GPU >> (решение для Windows, это не может быть изменено)

Пример:

import java.awt.Graphics; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class test { 

public static void main(String[] args){ 

    new test();  
} 

public test(){ 

    JFrame testingBlack = new JFrame("MCVe");  
    JPantest testingB = new JPantest(); 

    testingBlack.add(testingB); 
    testingBlack.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    testingBlack.setVisible(true); 


} 


private class JPantest extends JPanel{ 

    public JPantest(){   
     super(); 
     repaint();   
    } 

    protected void paintComponent(Graphics g){ 

     super.paintComponent(g); 
     g.drawLine(0, 0, 100, 100); 

    }    
} 
} 

Эта программа рисует простую линию. Я запускаю его от ecplise, он открывается с первого монитора, и все в порядке. Я перетаскиваю второй монитор, и он становится черным.

+0

* «черным» * Для лучшей помощи, скорее всего, отправьте сообщение [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). –

+0

Делают ли только приложения Swing черными? Кроме того, что такое масштабирование, о котором вы говорите? – user1803551

+0

Если это решено, пожалуйста, примите ответ (зеленая галочка рядом с голосами). – user1803551

ответ

3

Есть ли параметр поворота, чтобы программы запускались на втором мониторе или, по крайней мере, на мониторе, где работает затмение?

Местоположение вашей IDE не имеет значения. Любое окно без родителя будет инициализировано с координатой экрана (0, 0), эквивалентной той, что была возвращена GraphicsEnvironment#getDefaultScreenDevice(). Вы можете использовать setLocationByPlatform, чтобы позволить системе окон (ОС) определять местоположение. Если вы хотите, чтобы расположение второго монитора, вы можете сделать это:

public Main() { 

    JFrame testingBlack = new JFrame("MCVe"); 

    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
    GraphicsDevice[] gds = ge.getScreenDevices(); 
    GraphicsConfiguration gc = gds[1].getDefaultConfiguration(); 
    Rectangle rect = gc.getBounds(); 
    testingBlack.setLocation(rect.getLocation()); 

    // or, if you like this style better 

    testingBlack.setLocation(GraphicsEnvironment 
          .getLocalGraphicsEnvironment() 
          .getScreenDevices()[1] 
          .getDefaultConfiguration() 
          .getBounds() 
          .getLocation()); 

    testingBlack.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    testingBlack.setVisible(true); 
} 

Просто убедитесь, что вы получаете доступ правильное устройство в GraphicsDevice[], чтобы избежать исключения Aioob. Устройство должно быть по умолчанию [0] (хотя я не думаю, что есть такая гарантия).

Если я перемещаю программу поворота с первого монитора на второй, он становится черным. Почему это?

Не знаю. Должно быть что-то с настройкой вашего монитора.

+1

там не называется repaint() автоматически (для пользовательской покраски) после переключения устройства – mKorbel

+0

@mKorbel Очень возможно, почему это произойдет? – user1803551

+0

похоже, поскольку реализации в API не принимали несколько устройств (действительны для пользовательской раскраски), возможно, ошибка, функция, забыли или – mKorbel