Resolução da tela (Dual Monitor)

Ola galera,
estou usando Dual monitor no meu PC e preciso pegar a resolução que esta sendo usada nos dois monitores, no meu principal eu consigo pegar, agora o meu secundario nao faço a minima…
para pegar no primeiro monitor uso:

[code]Toolkit tk = Toolkit.getDefaultToolkit();
Dimension dim = tk.getScreenSize();

	int l = (int)dim.getHeight();
	int a = (int) dim.getWidth();
	
	System.out.println("" + a + " * " + l);

[/code]

dei uma olhada na classe GraphicsConfiguration mais nao entendi muita coisa…alguem jah fez algo do tipo?!

OBS, meu objetivo final eh abir o software no monitor 1 e quando clicar nu, botao abrir outra tela no centro do monitor 2 ;]

–editado
Consegui pegar os dois dispositivos, agora nao consigo pegar a resoução de cada dispositivo, estou pegando assim:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] devices = ge.getScreenDevices();
Obrigado.

Uma vez que você tem os GraphicsDevice, basta chamar o método getDisplayMode() de cada um. Esse método retorna um DisplayMode que contém informação sobre altura, largura, bit depth e taxa de atualização do dispositivo atual.

ai, valeu, eu conegui aqui,
mais o source fikou no trampo, amanha eu posto ai pra mostrar como fikou…valeu!!

ta ai, pra quem precisar:

[code]GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();

	if(gs.length > 1){
		GraphicsDevice gd = gs[1];
		GraphicsConfiguration[] gc = gd.getConfigurations();
		
		TelaSecundaria tela = new TelaSecundaria(); 
		Rectangle gcBounds = gc[0].getBounds();
		int devWidth = gcBounds.width;
		int devHeight = gcBounds.height;
		
		int telaWidth = tela.getWidth();
		int telaHeight = tela.getHeight();
		
		int posX = (devWidth + (devWidth/2)) - (telaWidth/2);
		int posY = (devHeight/2) - (telaHeight/2);
		
		tela.setLocation(posX, posY);
		tela.setVisible(true);
	}[/code]

Pessoal, porem agora vejam se isso eh possivel:
coloquei uma imagem na segunda tela, eu gostaria que ele abrisse do mesmo jeito, tanto num resolução grande (1024x728) como numa pequena(800x600), sem distorcer nem nada. É possivel fazer isso!?

O que você quer fizer com “sem distorção”? No tamanho original da imagem? Geralmente esse é o comportamento. Como exatamente você quer a imagem e como está seu código para carregar e mostrar a imagem?

[quote=Sad7]Pessoal, porem agora vejam se isso eh possivel:
coloquei uma imagem na segunda tela, eu gostaria que ele abrisse do mesmo jeito, tanto num resolução grande (1024x728) como numa pequena(800x600), sem distorcer nem nada. É possivel fazer isso!?[/quote]

Aprenda a usar LayoutManagers e seja feliz!

é o seguinte, quero que a imagem va se adaptando de acordo com o tamanho da minha janela, no Visual Studio por exemplo tem essa função pronta, “Size Mode” > “Zoom”, a imagem vai dando o zoom necessario para se adaptar a tela.

é o seguinte, quero que a imagem va se adaptando de acordo com o tamanho da minha janela, no Visual Studio por exemplo tem essa função pronta, “Size Mode” > “Zoom”, a imagem vai dando o zoom necessario para se adaptar a tela.[/quote]
Adicione um ComponentListener ao seu JFrame e no método componentResized faça o resize da imagem com o método Image.getScaledInstance().

é o seguinte, quero que a imagem va se adaptando de acordo com o tamanho da minha janela, no Visual Studio por exemplo tem essa função pronta, “Size Mode” > “Zoom”, a imagem vai dando o zoom necessario para se adaptar a tela.[/quote]
Adicione um ComponentListener ao seu JFrame e no método componentResized faça o resize da imagem com o método Image.getScaledInstance().[/quote]

Consegui fazer a parte de redimensionar, porem agora estou com outro erro que ta dando dor de cabeça, quando eu pego a imagem redimensionada num BufferedImage, a imagem aparece no meu JFrame e logo em seguida desaparece, se alguem puder dar uma ajuda =//

estou printando desta maneira na tela:

        // redimensiona imagem
        BufferedImage resizeImage = resizeImage(image, getWidth(), getHeight());
	Image img = resizeImage;

        // centraliza imagem na tela
	int x = (getWidth() - resizeImage.getWidth()) / 2;
	int y = (getHeight() - resizeImage.getHeight()) / 2;
        // pinta imagem no componente
	getGraphics().drawImage(img, x, y, this);

Isso vai acontecer mesmo que a imagem não seja redimensionada.

Isso porque você desenha a imagem uma vez, mas todas as vezes que o seu programa ou o sistema operacional fizer uma requisição de repaint() sua imagem não será desenhada.

Antes você mostrava a imagem como? Faça algo parecido, porém usando a imagem redimensionada.

PS: se você redimensiona a imagem para o tamanho da tela, não precisa fazer cálculo de posição: basta colocar na posição [0,0].

Resolvido,
eu rosolvi colocando uma imagem em um JLabel, dae ela apareceu normalmente.

Obrigado pela ajuda galera.
Abraçoss!