Est-il possible que si je permute entre les deux modes et dessine des choses pour les ajuster afin qu'en mode fenêtré les choses semblent être dessinées comme en mode plein écran mais sont en fait plus petites ...Java - Plein écran et mode fenêtré
Alors que mon code:
Constructeur: GraphicsEnvironment gfxEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gfxDevice = gfxEnvironment.getDefaultScreenDevice();
private boolean fullscreen = true; // pas vraiment comme ça
if (réponse == JOptionPane.YES_OPTION) {
setUndecorated(true);
setAlwaysOnTop(true);
DisplayMode getMode = gfxDevice.getDisplayMode();
DisplayMode displayMode = new DisplayMode(getMode.getWidth(), getMode.getHeight(), getMode.getBitDepth(), getMode.getRefreshRate());
gfxDevice.setFullScreenWindow(Frame.this);
gfxDevice.setDisplayMode(displayMode);
fullscreen = true;
} else {
setUndecorated(false);
setVisible(true);
setSize(800, 600);
setLocationRelativeTo(null);
setResizable(false);
fullscreen = false;
}
Passer les écrans: if (fullscreen) {
dispose();
setUndecorated(false);
gfxDevice.setFullScreenWindow(null);
setSize(800, 600);
setLocationRelativeTo(null);
setVisible(true);
fullscreen = false;
} else {
setVisible(false);
dispose();
setUndecorated(true);
gfxDevice.setFullScreenWindow(Frame.this);
fullscreen = true;
}
tirage: tirage private void (Graphics g) {
g.setColor(Color.RED);
g.fillRect(0, 0, 400, 800);
}
Alors, comment puis-je ajuster le Rect? Merci :)
Et comment puis-je dessiner exactement ce rect: (50, 30, 200, 350) si ma taille plein écran est 1600 et 900 et la taille de mon mode de fenêtre est 800 et 600? :) – user3751598
Oh je viens de diviser la coordonnée x et la largeur du rect avec 2 et les coordonnées y avec 1.5 (je pense) donc j'ai pris ce code: float strechX = 1.0f, strechY = 1.0f; if (! Fullscreen) { strechX = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(). GetMaximumWindowBounds(). Largeur/largeur; strechY = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(). GetMaximumWindowBounds(). Hauteur/HAUTEUR; } g.setColor (Color.RED); g.fillRect ((int) (0,0f/strechX), (int) (0,0f/strechY), (int) (100,0 f/strechX), (int) (200,0 f/strechY)); – user3751598
C'est vraiment difficile à lire dans un commentaire mais ça a marché? Si oui, alors bon travail! Il est important de toujours adapter la taille de la vue à la taille de l'écran/de la fenêtre. Cela rend le code fastidieux mais produit des résultats cohérents. –