Как Вы получаете экран width в Java?

Кто-либо знает, как Вы получили бы экран width в Java? Я считал что-то о некотором методе инструментария, но я не совсем уверен, каково это.

Спасибо, Andrew

41
задан skaffman 20 December 2009 в 18:41
поделиться

8 ответов

java.awt.Toolkit.getDefaultToolkit().getScreenSize()
77
ответ дан 27 November 2019 в 00:12
поделиться

Следующий код должен сделать это (не пробовал):

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
gd.getDefaultConfiguration().getBounds().getWidth();

edit:

Для нескольких мониторов вы должны использовать следующий код (взятый из javadoc of java.awt.GraphicsConfiguration :

  Rectangle virtualBounds = new Rectangle();
  GraphicsEnvironment ge = GraphicsEnvironment.
          getLocalGraphicsEnvironment();
  GraphicsDevice[] gs =
          ge.getScreenDevices();
  for (int j = 0; j < gs.length; j++) { 
      GraphicsDevice gd = gs[j];
      GraphicsConfiguration[] gc =
          gd.getConfigurations();
      for (int i=0; i < gc.length; i++) {
          virtualBounds =
              virtualBounds.union(gc[i].getBounds());
      }
  } 
5
ответ дан 27 November 2019 в 00:12
поделиться

OP, вероятно, хотел что-то вроде этого:

Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
2
ответ дан 27 November 2019 в 00:12
поделиться

Toolkit имеет ряд классов, которые могут помочь:

  1. getScreenSize - raw размер экрана
  2. getScreenInsets - получает размер панели инструментов, dock
  3. getScreenResolution - dpi

В итоге мы используем 1 и 2, чтобы вычислить полезный максимальный размер окна. Чтобы получить соответствующую GraphicsConfiguration, мы используем

GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].getDefaultConfiguration();

, но могут быть более умные решения для нескольких мониторов.

5
ответ дан 27 November 2019 в 00:12
поделиться
Toolkit.getDefaultToolkit().getScreenSize().getWidth()
1
ответ дан 27 November 2019 в 00:12
поделиться

Вы можете получить его с помощью AWT Toolkit .

0
ответ дан 27 November 2019 в 00:12
поделиться

Toolkit.getScreenSize () .

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
0
ответ дан 27 November 2019 в 00:12
поделиться

Вот два метода, которые я использую, которые учитывают несколько мониторов и вставок панели задач. Если вам не нужны эти два метода по отдельности, вы, конечно, можете избежать двойного получения графической конфигурации.

static public Rectangle getScreenBounds(Window wnd) {
    Rectangle                           sb;
    Insets                              si=getScreenInsets(wnd);

    if(wnd==null) { 
        sb=GraphicsEnvironment
           .getLocalGraphicsEnvironment()
           .getDefaultScreenDevice()
           .getDefaultConfiguration()
           .getBounds(); 
        }
    else { 
        sb=wnd
           .getGraphicsConfiguration()
           .getBounds(); 
        }

    sb.x     +=si.left;
    sb.y     +=si.top;
    sb.width -=si.left+si.right;
    sb.height-=si.top+si.bottom;
    return sb;
    }

static public Insets getScreenInsets(Window wnd) {
    Insets                              si;

    if(wnd==null) { 
        si=Toolkit.getDefaultToolkit().getScreenInsets(GraphicsEnvironment
           .getLocalGraphicsEnvironment()
           .getDefaultScreenDevice()
           .getDefaultConfiguration()); 
        }
    else { 
        si=wnd.getToolkit().getScreenInsets(wnd.getGraphicsConfiguration()); 
        }
    return si;
    }
18
ответ дан 27 November 2019 в 00:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: