Comment peut-on obtenir la taille du moniteur?
J'utilise un JFrame et les méthodes de java swing.
Comment peut-on obtenir la taille du moniteur?
J'utilise un JFrame et les méthodes de java swing.
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 :
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
}
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()
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 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.