Pessoal, estou desenvolvendo uma aplicação, porem eu queria
“forçar” todos que forem utiliza-las a usar a 1024 x 768.
Tem como fazer isso ? verificar a resolução do vídeo e se ela não for
a indicada auterá-la automáticamente … e assim que a aplicação
fechar voltar a resolução que estava ?
Será que estou viajando na batatinha ? :lol:
Valeuuuu
Tem sim, mas você terá que ver se o modo de vídeo é suportado.
Em anexo coloquei uma classe chamada ScreenManager, que uso no Vikanoid. Além de trocar a resolução, ela pode ser usada para usar o modo full screen exclusivo.
Use a função findFirstCompatibleMode para verificar, na lista de display modes que você quer, qual dos modos que você quer colocar é compatível com os suportados pelo monitor de seu usuário.
Depois, use o comando isDisplayChangeSupported para verificar se você pode trocar de resolução. O seu usuário pode não ter esse tipo de privilégio.
Finalmente, use o comando setDisplayMode para fazer a troca propriamente dita. O código fica mais ou menos assim:
[code]
public switchVideoMode() {
//Queremos 1024x68, em 32, 24 ou 16 bits.
DisplayMode displayModes[] = {
new DisplayMode(1024, 768, 32, 0),
new DisplayMode(1024, 768, 24, 0),
new DisplayMode(1024, 768, 16, 0)
};
DisplayMode mode = ScreenManager.getInstance().findFirstCompatibleMode(displayModes);
if (ScreenManager.getInstance().isDisplayChangeSupported)
ScreenManager.getInstance().setDisplayMode(mode);
else {
JOptionPane.showMessageDialog(“Não foi possível alterar a resolução”);
System.exit(1);
}
}[/code]
Olha eu aqui d nvo … 
Obrigado Vini pelas informações, ajudou bastante …
Porem oq eu quero é apenas alterar a resolução do monitor atraves da minha aplicação Java, ou seja, não quero trabalhar em Full Screen.
Então vendo o material q vc me mandou e olhando a documentação do Jdk 1.5, vi que o método setDisplayMode da classe DisplayMode faria isso. Porem ele informa que que a resolução não pode ser alterada …
Será que estou errando em alguma coisa … esse é o código …
[code] GraphicsEnvironment ge = GraphicsEnvironment
.getLocalGraphicsEnvironment();
GraphicsDevice gs = ge.getDefaultScreenDevice();
// Change the screen size and number of colors
DisplayMode displayMode = gs.getDisplayMode();
displayMode = new DisplayMode(1024, 768, 32, 60);
try {
gs.setDisplayMode(displayMode);
Thread.sleep(500);
} catch (UnsupportedOperationException e) {
System.out.println("Display mode cannot be changed");
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}[/code]
Para ficar mais facil, eu coloquei aquela exceção que é lançada quando o método isDisplayChangeSupported() retorna false. Então ele lança a seguinte exceção:
java.lang.UnsupportedOperationException: Cannot change display mode
at java.awt.GraphicsDevice.setDisplayMode(GraphicsDevice.java:338)
at sun.awt.Win32GraphicsDevice.setDisplayMode(Win32GraphicsDevice.java:427)
A resolução não poder ser alterada .... Cannot change display mode
Alguem ja tentou fazer isso e obteve sucesso é puder dar uma mãozinha …
Grato
