Acho que pode ser duvida de algumas pessoas e como passei um bom tempo pesquisando e não achei como , foi fazendo testes que consegui , vou postar aqui como realizar isso!
JFrame f = new JFrame();
f.setVisible(true);
//caso fosse usar "df.setUndecorated(true)" agora , daria erro
//para isso
f.dispose();
f.setUndecorated(true);
f.setVisible(true);
//mesma coisa para "f.setUndecorated(false)"
f.dispose();
f.setUndecorated(false);
f.setVisible(true);
Obrigado pela dica , consegui fazer funcionar aqui.
Chamei o metodo setUndecorated(true) antes do metodo setVisible(true) , não precisei usar o dispose e o show.
Vou guardar essa dica , acredito que com isso da até para fazer uma tela de splash personalizada com barra de progresso.
Valeu !!!
G
geovanni
O problema mesmo é quando a janela já ta visível , da erro.
e se tu usar um setVisible(false) antes , não funciona. D=
Com essa técnica até pode se fazer um botão no JFrame que adiciona e remova as bordas. =D
Não é muito útil no dia-dia na programação Swing , mas pode ser importante em casos específicos. =D
Vlw!
S
suspiro10
Só um detalhe: usando f.setUndecorated(false); retira também a barra de título e não permite redimensionar o jframe.
G
geovanni
nao tinha reparado nisso. ‘-’
então esse setUndecorated(false) é um grande problema ‘-’
Provavelmente esse jeito que fiz tambm permite redimensionar o jframe =D
vou fazer uns testes aqui depois ^^
V
ViniGodoy
[size=18][color=red]Não use métodos deprecated.[/color][/size]
Eles não estão assim à toa. É, no mínimo, uma irresponsabilidade confiar num código que o fabricante da linguagem diz explicitamente para você não usar, ao ponto de programar sua IDE para deixá-lo riscado. Em código assim, não há garantias de funcionamento, ou mesmo de que o método existirá em funções futuras da linguagem.
Se você ler os fontes do método setVisible, vai ver que ele também remonta a janela. Na pior das hipóteses, chame o método invalidate() sobre a janela antes de abri-la novamente.
G
geovanni
Não achei outra opção D=
Eu acho que tentei o setVisible(true) e não funciono!
vou até tentar usar invalidate() pois nunca tentei com ele , mas o show() foi a unica alternativa que achei
se funcionar arrumo o codigo aqui =D
G
geovanni
Coloquei um setVisible(true) e funcionou =D
Nao sei porque eu achava que nao funcionava .-.'
Achava que ja tinha feito isso e nao tinha funcionado!
Vou arrumar aqui =D //Arrumado!
Obs.:Alguém sabe me responde porque o setVisible(false) não desmonta a janela , apenas esconde , e o setVisible(true) monta se ela não foi desmontada! D=
V
ViniGodoy
O setVisible(false) não desmonta a janela justamente porque é o que ele faz, deixa-la apenas invisível. Para desmontar, use o dispose().
V
ViniGodoy
Detalhe. Se você for ver o código do método setVisible(true), vai ver que internamente ele chama o show(), além de disparar alguns eventos e realizar algumas outras operações. Por isso, não é possível que ele faça coisas a menos que o show.
G
geovanni
Hm…
Parece estranho isso , o setVisible(true) deveria apenas exibir tambm , pois é o mesmo metodo [/isso seguindo um lógica
Mas não tenho nada contra ele remonta a janela kkkkkkk’