Quelqu'un sait-il comment obtenir la largeur de l'écran en java ? J'ai lu quelque chose à propos d'une méthode de la boîte à outils mais je ne suis pas sûr de ce que c'est.
Merci, Andrew
Quelqu'un sait-il comment obtenir la largeur de l'écran en java ? J'ai lu quelque chose à propos d'une méthode de la boîte à outils mais je ne suis pas sûr de ce que c'est.
Merci, Andrew
Voici les deux méthodes que j'utilise, qui tiennent compte des moniteurs multiples et des insertions dans la barre des tâches. Si vous n'avez pas besoin des deux méthodes séparément, vous pouvez, bien sûr, éviter de recevoir deux fois la configuration graphique.
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;
}
La zone de travail est la zone du bureau de l'écran, à l'exclusion des barres de tâches, des fenêtres ancrées et des barres d'outils ancrées.
Si ce que vous voulez est la "zone de travail" de l'écran, utilisez ceci :
public static int GetScreenWorkingWidth() {
return java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().width;
}
public static int GetScreenWorkingHeight() {
return java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().height;
}
Le code suivant devrait le faire (je ne l'ai pas essayé) :
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
gd.getDefaultConfiguration().getBounds().getWidth();
éditer :
Pour les moniteurs multiples, vous devez utiliser le code suivant (tiré de l'application javadoc de 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());
}
}
Boîte à outils a un certain nombre de cours qui pourraient vous aider :
Nous finissons par utiliser 1 et 2, pour calculer la taille maximale utilisable de la fenêtre. Pour obtenir la GraphicsConfiguration appropriée, nous utilisons
GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].getDefaultConfiguration();
mais il existe peut-être des solutions plus intelligentes à plusieurs moniteurs.
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.