Gostaria de saber se é possível abrir alguma janela Java em tela Cheia (como uma apresentação do PowerPoint).
Janela em Tela Cheia
8 Respostas
O q vc poderia fazer é abrir ela maximizado.
bem, mas a versão jdk 1.3 nao possue esse recurso ainda…so a jdk 1.4 q possue
Daniel,
Segue uma resposta retirada da lista do soujava.
Faça o teste vc mesmo.
Um abraço,
Edilson S. Souza
http://www.javalinux.com.br
em ambientes do tipo desktop, nem toda a tela está disponível para as janelas…
por exemplo, se vc criar uma janela com o tamanho da tela, no windows, parte da janela ficará escondida atrás da barra de programas.
Como não dá pra prever o tamanho da área disponível em tempo de compilação, existem duas soluções:
- Encontrar o espaço disponível para seu programa (Insets) em tempo de execução:
//O espaço disponível
Insets in = Toolkit.getDefaultToolkit().getScreenInsets(this.getGraphicsConfiguration());
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int width = d.width-(in.left + in.top);
int height = d.height-(in.top + in.bottom);
setSize(width,height);
setLocation(in.left,in.top);
- Maximizar a tela
Para maximizar a tela via programação, faça:
meuFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
Detalhe: Este método só irá funcionar se o meuFrame estiver “realized”, isto é, pronto para ser desenhado na tela (após os métodos pack(), setVisible(true) ou show()):
“Realized means that the component has been painted on-screen, or that it is ready to be painted. A Swing component that’s a top-level window is realized by having one of these methods invoked on it: setVisible(true), show, or pack. Once a window is realized, all the components that it contains are realized.”
Espero ter ajudado.
Luiz Felipe Molina.
Com swing vc pode utilizar a classe JWindow da mesma forma que usa JFrame.
Edilson S. Souza
http://www.javalinux.com.br
Ficou bom, não exatamente como eu queria, mas ficou legal.
A solução que eu usei foi a proposta na lista do SouJava, na verdade eu criei uma classe para fazer isso, ficou assim:
import java.awt.*;
public class Bounds{
//variaveis usadas para armazenar as medidas e possiçoes
public int width, height, left, top;
//método utilizado para pega as medidas e possiçoes
//do Component passado como parâmetro
public void setAllScreenBounds(Component component){
Insets in = Toolkit.getDefaultToolkit().getScreenInsets(component.getGraphicsConfiguration());
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
width= d.width-(in.left + in.right);
height= d.height-(in.top + in.bottom);
left= in.left;
top= in.top;
}
}
Agora eu instancio essa classe e usso o metodo getAllScreenBounds(Component) passando o Component q eu quero e utilizo as variaveis para ajustar o setBounds do meu Component.
import javax.swing.*;
public class TesteBounds extends JFrame{
public TesteBounds(){
Bounds bounds= new Bounds();
bounds.setAllScreenBounds(this);
this.setBounds(bounds.left,bounds.top,bounds.width,bounds.height);
}
public static void main(String[] args){
TesteBounds app= new TesteBounds();
app.setVisible(true);
}
}
Outros métodos podem ser adicionados a classe Bounds para, por exemplo, pegar as possiçoes para centralizar uma janela.
Espero que essa minha solução possa ser util para quem vier aki procurar uma saida como eu!!
Olá pessoal!
eu até consegui por em tela cheia, mas quando a abro uma janela de dialogo a tela minimiza e apenas o dialogo fica na tela. Eu estou desenvolvendo um sistema de frente caixa e queria que continuasse em tela cheia.
Valeu!
Resolvido, foi bem mais simples do que eu pensava. 
public CaixaView() {
this.setUndecorated(true);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
PARABÉNS, orobsonpires!!! MUITO BOM!
DIOHAMMAD, bem vindo ao fórum.
Por gentileza leia as regras.
Evite ressuscitar tópicos antigos.
