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:
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension dim = tk.getScreenSize();
int l = (int)dim.getHeight();
int a = (int) dim.getWidth();
System.out.println("" + a + " * " + l);
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();
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.
S
Sad7
ai, valeu, eu conegui aqui,
mais o source fikou no trampo, amanha eu posto ai pra mostrar como fikou…valeu!!
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!?
M
marcobiscaro2112
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?
E
entanglement
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!?
Aprenda a usar LayoutManagers e seja feliz!
S
Sad7
é 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.
M
marcobiscaro2112
é 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.
Adicione um ComponentListener ao seu JFrame e no método componentResized faça o resize da imagem com o método Image.getScaledInstance().
S
Sad7
é 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.
Adicione um ComponentListener ao seu JFrame e no método componentResized faça o resize da imagem com o método Image.getScaledInstance().
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 imagemBufferedImageresizeImage=resizeImage(image,getWidth(),getHeight());Imageimg=resizeImage;// centraliza imagem na telaintx=(getWidth()-resizeImage.getWidth())/2;inty=(getHeight()-resizeImage.getHeight())/2;// pinta imagem no componentegetGraphics().drawImage(img,x,y,this);
M
marcobiscaro2112
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].
S
Sad7
Resolvido,
eu rosolvi colocando uma imagem em um JLabel, dae ela apareceu normalmente.