¿Cómo puedo obtener la resolución de pantalla en Java?

Resuelto AndreDurao asked hace 14 años • 12 respuestas

¿Cómo se puede obtener la resolución de la pantalla (ancho x alto) en píxeles?

Estoy usando JFrame y los métodos java swing.

AndreDurao avatar Sep 10 '10 03:09 AndreDurao
Aceptado

Puede obtener el tamaño de la pantalla con el Toolkit.getScreenSize()método.

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
double width = screenSize.getWidth();
double height = screenSize.getHeight();

En una configuración de varios monitores deberías usar esto:

GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
int width = gd.getDisplayMode().getWidth();
int height = gd.getDisplayMode().getHeight();

Si desea obtener la resolución de la pantalla en DPI, deberá utilizar el getScreenResolution()método en Toolkit.


Recursos :

  • javadoc - Kit de herramientas.getScreenSize()
  • Error de Java 5100801: Toolkit.getScreenSize() no devuelve la dimensión correcta en multimon, Linux
Colin Hebert avatar Sep 09 '2010 20:09 Colin Hebert

Este código enumerará los dispositivos gráficos en el sistema (si hay varios monitores instalados) y usted puede usar esa información para determinar la afinidad del monitor o la ubicación automática (algunos sistemas usan un pequeño monitor lateral para visualizaciones en tiempo real mientras se ejecuta una aplicación). el fondo, y dicho monitor se puede identificar por el tamaño, los colores de la pantalla, etc.):

// Test if each monitor will support my app's window
// Iterate through each monitor and see what size each is
GraphicsEnvironment ge      = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[]    gs      = ge.getScreenDevices();
Dimension           mySize  = new Dimension(myWidth, myHeight);
Dimension           maxSize = new Dimension(minRequiredWidth, minRequiredHeight);
for (int i = 0; i < gs.length; i++)
{
    DisplayMode dm = gs[i].getDisplayMode();
    if (dm.getWidth() > maxSize.getWidth() && dm.getHeight() > maxSize.getHeight())
    {   // Update the max size found on this monitor
        maxSize.setSize(dm.getWidth(), dm.getHeight());
    }

    // Do test if it will work here
}
Rick Hodgin avatar Sep 17 '2011 13:09 Rick Hodgin