Koordinate im sichtbaren Bereich

Status
Nicht offen für weitere Antworten.

letdoch

Aktives Mitglied
Hi, ich will ein Programm schreiben, welches im Fullscreenmodus startet. Bevor das aber passiert, möchte ich ein kleinen JDialog haben, der Programmintern prüft, ob mehrere Bildschirme am Rechner dranne sind und anschließend dem Benutzer die Möglichkeit gibt, auszuwählen, wo das Programm denn nu final gestartet werden soll.

Mein Quelltext sieht bisher so aus:

HTML:
public void bildschirme(){
        ArrayList<Integer> bildschirme = new ArrayList<Integer>();
        GraphicsDevice[] gs = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
        int anzahlBildschirme = gs.length;
        if(anzahlBildschirme>1){
            int anzahlMonitore = 0;
            for(GraphicsDevice gd : gs){
                if(gd.getType()==GraphicsDevice.TYPE_RASTER_SCREEN){
                    anzahlMonitore++;
                }
            }
            int screenSizeDevice[][] = new int[anzahlMonitore][2];
            for(int i = 0; i<anzahlMonitore; i++){
                GraphicsConfiguration gc = gs[i].getDefaultConfiguration();
                screenSizeDevice[i][0] = gc.getBounds().width;
                screenSizeDevice[i][1] = gc.getBounds().height;
            }
            int temp = 0;
            int temp2 = 0;
            for(int i = 0; i<(anzahlMonitore*2);i++){
                bildschirme.add(screenSizeDevice[temp2][temp]);
                temp++;
                if(i%2!=0&&i!=0){
                    temp = 0;
                    temp2++;
                }
            }
        }
        JFrame f = new JFrame();
        

    }

Dieser Text ermittelt, ob es mehrere Monitore gibt und wie deren Auflösungen sind. Ich bräuchte nun eine Möglichkeit, wie ich prüfen könnte wo der 2. Monitor sich befindet (also ob links, rechts, oben, unten vom ersten Monitor).

Wie kann ich das umsetzen?
 
Java:
final GraphicsDevice[] gs = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
for (final GraphicsDevice dev : gs) {
	System.out.println("Monitor " + dev.getIDstring() 
			+ " Bounds: " + dev.getDefaultConfiguration().getBounds());
}
In den Bounds steht dann alles drin was du brauchst!


In meinem Fall steht der 2. Monitor links, darum das negative x
Monitor \Display0 Bounds: java.awt.Rectangle[x=0,y=0,width=1280,height=1024]
Monitor \Display1 Bounds: java.awt.Rectangle[x=-1280,y=0,width=1280,height=1024]
 
Zuletzt bearbeitet:
Java:
final GraphicsDevice[] gs = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
for (final GraphicsDevice dev : gs) {
	System.out.println("Monitor " + dev.getIDstring() 
			+ " Bounds: " + dev.getDefaultConfiguration().getBounds());
}
In den Bounds steht dann alles drin was du brauchst!


In meinem Fall steht der 2. Monitor links, darum das negative x
Monitor \Display0 Bounds: java.awt.Rectangle[x=0,y=0,width=1280,height=1024]
Monitor \Display1 Bounds: java.awt.Rectangle[x=-1280,y=0,width=1280,height=1024]

SPITZE das war es, danke sehr!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben