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.
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]
é 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].