Bonjour
J'essaye de mettre en place la gestion de deux moniteurs
Voici le code utilisé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.Toolkit; public interface GlobalVar { // Version de CDM-Rail public final static String CDM_VERSION = "V26"; // Liste des écrans disponibles // On ne tient compte que de deux écrans au maximum static GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment(); static GraphicsDevice[] gDevices = gEnv.getScreenDevices(); public final static GraphicsDevice SCREEN_PRIMARY = gDevices[0]; public final static GraphicsDevice SCREEN_SECONDARY = gDevices.length > 1 ? gDevices[1] : gDevices[0]; // Les deux confighurations graphiques public final static GraphicsConfiguration SCREEN_PRIMARY_CONF = SCREEN_PRIMARY.getDefaultConfiguration(); public final static GraphicsConfiguration SCREEN_SECONDARY_CONF = SCREEN_SECONDARY.getDefaultConfiguration(); // Pour utiliser le second écran public static boolean useScreenSecondary = false; // Taille de l'écran principal public final static int SCREEN_PRIMARY_WIDTH = Toolkit.getDefaultToolkit().getScreenSize().width; public final static int SCREEN_PRIMARY_HEIGHT = Toolkit.getDefaultToolkit().getScreenSize().height; // Taille de l'écran secondaire public final static int SCREEN_SECONDARY_WIDTH = Toolkit.getDefaultToolkit().getScreenSize().width; public final static int SCREEN_SECONDARY_HEIGHT = Toolkit.getDefaultToolkit().getScreenSize().height; /* * Les types de fenêtres utilisées */ public final static String WIN_MAIN = "MAIN"; // Fenêtre principale }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 import javax.swing.*; // Dans cette classe on trouve la création de toutes les fenêtres public class CdmWin implements GlobalVar{ // Instances des fenêtres CdmWinMain winMain; // Fenêtre principale de CDM-Rail // Constructeur CdmWin (String winType) { /** * @param winType */ switch (winType) { case WIN_MAIN : winMain = new CdmWinMain("CDM-Rail - " + CDM_VERSION); break; } } /* * Classe de la fenêtre principale de CDM-Rail */ class CdmWinMain extends JFrame{ // Constructeur CdmWinMain(String ptitle){ /** * @param ptitle */ // Création de la fenêtre sur l'écran principal super(SCREEN_SECONDARY_CONF); // Son titre this.setTitle(ptitle); // Dimensions de la fenêtre this.setSize(SCREEN_SECONDARY_WIDTH, SCREEN_SECONDARY_HEIGHT); // Positionne la fen^tre au centre de l'écran this.setLocationRelativeTo(null); // Quitte l'application quand on clique sur le bouton de fermeture de la fenêtre this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } } }Je travaille avec Eclipse, le code s'exécute sans erreurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 /* * Classe principale * */ public class CdmMain implements GlobalVar { /** * * @param args */ public static void main(String[] args) { /** * Création de la fenêtre principale de CDM-Rail */ CdmWin winMain = new CdmWin(GlobalVar.WIN_MAIN); } }
Mais la fenêtre s'affiche sur le premier écran
J'ai affiché le nombre d'écran avec gDevices.length, il affiche bien 2
Je suis sur MacOS
Merci pour votre aide
Louis






Répondre avec citation
Partager