166 votes

Comment puis-je obtenir la taille du moniteur en java?

Comment peut-on obtenir la taille du moniteur?

J'utilise un JFrame et les méthodes de java swing.

318voto

Colin Hebert Points 40084

Vous pouvez obtenir la taille de l'écran avec l' Toolkit.getScreenSize() méthode.

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

Sur une configuration multi-écrans, vous devez utiliser ce :

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

Si vous souhaitez obtenir la résolution de l'écran en PPP, vous devez utiliser l' getScreenResolution() méthode Toolkit.


Ressources :

17voto

Rick Hodgin Points 214

Ce code énumère les périphériques graphiques du système (si plusieurs moniteurs sont installés), et vous pouvez utiliser ces informations pour déterminer l'affinité ou le placement automatique du moniteur (certains systèmes utilisent un petit moniteur latéral pour les affichages en temps réel lorsqu'une application est en cours d'exécution dans. l’arrière-plan, et un tel moniteur peut être identifié par la taille, les couleurs de l’écran, 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
}
 

12voto

Starkey Points 7030

Cet appel vous donnera les informations que vous souhaitez.

 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
 

4voto

Nathan Points 667

Voici une partie du code fonctionnel (Java 8) qui retourne la position en x de la droite la plupart en bordure de la plus à droite de l'écran. Si aucune écrans, puis elle retourne 0.

  GraphicsDevice devices[];

  devices = GraphicsEnvironment.
     getLocalGraphicsEnvironment().
     getScreenDevices();

  return Arrays.
     asList(devices).
     stream().
     map(device -> device.getDefaultConfiguration()).
     map(configuration -> configuration.getBounds()).
     mapToInt(bounds -> bounds.x + bounds.width).
     max().
     orElse(0);

Voici des liens vers la JavaDoc.

GraphicsEnvironment.getLocalGraphicsEnvironment()
GraphicsEnvironment.getScreenDevices()
GraphicsDevice.getDefaultConfiguration()
GraphicsConfiguration.getBounds()

3voto

jan Points 424

Il s’agit de la résolution de l’écran auquel le composant donné est actuellement affecté (une partie semblable à la majeure partie de la fenêtre racine est visible sur cet écran).

 public Rectangle getCurrentScreenBounds(Component component) {
    return component.getGraphicsConfiguration().getBounds();
}
 

Usage:

 Rectangle currentScreen = getCurrentScreenBounds(frameOrWhateverComponent);
int currentScreenWidth = currentScreen.width // current screen width
int currentScreenHeight = currentScreen.height // current screen height
// absolute coordinate of current screen > 0 if left of this screen are further screens
int xOfCurrentScreen = currentScreen.x
 

Si vous voulez respecter les barres d’outils, etc., vous devrez aussi calculer avec ceci:

 GraphicsConfiguration gc = component.getGraphicsConfiguration();
Insets screenInsets = Toolkit.getDefaultToolkit().getScreenInsets(gc);
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X