Не обращайте внимания на использование оконных вставок, но уделяйте больше внимания использованию ScreenInsets, который сохраняется локально как вставки Insets; Я печатаю insets.bottom, и для каждого монитора отображается высота панели задач, даже если панель задач находится только на первом мониторе.Получение каждой вкладки монитора в Java
Мониторные вставки на моем втором мониторе должны быть равны нулю, но все же он действует так, как если бы панель задач находилась на обоих мониторах. Установка окна в полный размер на мониторе, которое в настоящее время находится на рабочем столе, за исключением того, что оно оставляет место для панели задач независимо от того, какой монитор использует ее.
Из моего понимания Toolkit.getScreenInsets (GraphicsConfiguration) это должно верните правильные вставки для конкретной конфигурации GraphicsConfiguration, но я передаю в GraphicsConfiguration GraphicsDevice и получаю те же результаты.
JFrame window;
public void setSizeToFullScreen()
{
GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] screenDevices=ge.getScreenDevices();
Point p=window.getLocationOnScreen();
for(int i=0;i<screenDevices.length;i++)
{
Rectangle2D b=screenDevices[i].getDefaultConfiguration().getBounds();
if(SMath.getMath().doesRectangleContainPoint(b.getX(), b.getY(), b.getWidth(), b.getHeight(), p.getX(),p.getY()))
{
Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(screenDevices[i].getDefaultConfiguration());
System.out.println("Monitor: "+i+": task bar height: "+insets.bottom);
this.setSize(b.getWidth()+1 -(insets.right+insets.left)-(this.window.getInsets().left+this.window.getInsets().right), b.getHeight()+1-(insets.top+insets.bottom)-(this.window.getInsets().top+this.window.getInsets().bottom));
this.setLocation(b.getX()+insets.left+window.getInsets().left, b.getY()+insets.top+window.getInsets().top);
return;
}
}
}
Мой вопрос, в Java, как мы можем выяснить, какой монитор на самом деле имеют панель задачи, или лучший вопрос, как мы можем получить правильные врезки монитора для каждого монитора в Java.