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);
		}
	}
 
}
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);
     }	
}
Je travaille avec Eclipse, le code s'exécute sans erreurs
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