Как определить разрешение дисплея

Иногда приложению бывает необходимо узнать, какое разрешение дисплея сейчас установлено. Для чего это может понадобиться? Раньше, когда я не знал про метод setLocationRelativeTo, то использовал ниже представленный метод для позиционирования окна приложения. Я создавал специальный метод, который получал размеры экрана, потом размеры окна приложения, а затем рассчитывал координаты верхнего левого угла окна. Код примера с методом приведен ниже.

import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;

public class TestFrame {

     public static void createGUI() {
          JFrame.setDefaultLookAndFeelDecorated(true);
          final JFrame frame = new JFrame(«Test frame»);
                    
          frame.setPreferredSize(new Dimension(300, 200));
          setCenterPosition(frame);
          
          frame.pack();          
          frame.setVisible(true);
     }
     
     private static void setCenterPosition(JFrame frame) {
          Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
          Dimension frameSize = frame.getPreferredSize();

          if (frameSize.height > screenSize.height) {
               frameSize.height = screenSize.height;
          }

          if (frameSize.width > screenSize.width) {
               frameSize.width = screenSize.width;
          }

          frame.setLocation((screenSize.width — frameSize.width) / 2,
                    (screenSize.height — frameSize.height) / 2);
     }

     public static void main(String[] args) {
          javax.swing.SwingUtilities.invokeLater(new Runnable() {
               public void run() {
                    createGUI();
               }
          });
     }
}

Из кода видно, что для получения размеров дисплея в пикселах необходимо у класса Toolkit вызывать статичный метод getDefaultToolkit, а затем метод getScreenSize, который вернет уже непосредственно размеры дисплея. Размеры возвратятся в виде экземпляра Dimension. Этот класс очень часто используется для хранения размеров.

Advertisements

5 Responses to Как определить разрешение дисплея

  1. пapaзит says:

    С удовольствием читаю. Продолжайте писать обязательно. Андрей, Хакасия.

  2. Anisimov says:

    Спасибо, пригодилось

  3. nic says:

    то что нужно… thx

  4. Vlads says:

    А как получить разрешение экрана без учёта панели инструментов?

  5. Vios says:

    GraphicsDevice graphicsDevice = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();

    int wi = graphicsDevice.getDisplayMode().getWidth();
    int he = graphicsDevice.getDisplayMode().getHeight();

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: