# Fenster auf zweitem Monitor platzieren



## Gelöschtes Mitglied 9001 (8. Jan 2008)

Hallo,

ausgehend davon, daß man zwei Monitore (z.B. Laptop + externer Monitor oder eben zwei Monitore) hat, die den Inhalt nicht spiegeln, sondern den Desktop vergrößern - gibt es eine Möglichkeit, beim Programmstart ein Fenster auf dem einen, ein weiteres Fenster auf dem anderen Monitor zu platzieren?

Besten Dank für alle Tipps!
Rajumd


----------



## tfa (8. Jan 2008)

Hast Du schon setBounds() bzw. setLocation() ausprobiert?


----------



## Quaxli (8. Jan 2008)

Ich habe das noch nicht gemacht, aber ich denke zuerst sollte man prüfen, ob ein 2. Monitior vorhanden ist. In der API zur Klasse Toolkit steht unter getScreenSize():



> Gets the size of the screen. On systems with multiple displays, the primary display is used. Multi-screen aware display dimensions are available from GraphicsConfiguration and GraphicsDevice.



Daher solltest Du Dir die entsprechenden Klassen mal ansehen. Dort solltest Du allen notwendigen Informationen benötigen, die Du benötigst, z. B. bei Klasse GraphicsEnvironment, Methode getBounds:



> Returns the bounds of the GraphicsConfiguration  in the device coordinates. In a multi-screen environment with a virtual device, the bounds can have negative X or Y origins.


----------



## Gast (8. Jan 2008)

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
	    	   Dimension screenSize;

	    	        GraphicsDevice[] gs = ge.getScreenDevices();
	    	         int numScreens = gs.length;

einzelne bildschirme abfragen
	DisplayMode dm = gs_.getDisplayMode();_


----------



## masta // thomas (8. Jan 2008)

Hier noch ein kleines Beispiel für dich:


```
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class Test  {
	
	public static void main(String[] args) {
		GraphicsDevice[] graphicsDevices = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
		for(GraphicsDevice d : graphicsDevices)
		{
			Rectangle deviceBounds = d.getDefaultConfiguration().getBounds();
			JFrame frame = new JFrame(d.getDefaultConfiguration());
			frame.setBounds((int)deviceBounds.getX(), (int)deviceBounds.getY(), (int)deviceBounds.getWidth(), (int)deviceBounds.getHeight());
			frame.add(new JLabel(d.getIDstring()));
			frame.setVisible(true);
		}
	}
}
```


----------



## inka (8. Jan 2008)

Kann es sein, dass die Grafikkarte und/oder deren Einstellungen dabei eine Rolle spielt? Wir haben nämlich folgendes Phänomen: Wir haben einen Doppelbildschirm und auf dem rechten läuft unser Browser. Die Pulldownmenüs und ToolTips, welche vom Windows selber platziert werden, kommen bei uns sehr schön. Beim Kunden werden sie jedoch am rechten Rand des linken Bildschirms angezeigt! Popups und Pulldownmenüs, welche unser Programm selber platzieren kann (immer relativ zur linken oberen Ecke des Browsers), kommen übrigens in jedem Fall korrekt auf dem rechten Bildschirm. Wir haben inzwischen erfahren, dass das Phänomen auch bei anderen Programmen auftritt (z.T. sogar bei MS-eigenen!). Da wir das Problem bei uns nicht reproduzieren können, wissen wir nicht, was wir dagegen unternehmen können. Hat jemand eine Idee?


----------

