Alô pessoal! Será que alguém consegue tirar essa minha dúvida?
Estou criando um programa e gostaria de que ele não abrisse duas janelas idênticas… Tipo, se a janela de “vendas” já está aberta, ao clicar no botão “vender” não poderia abrir uma janela, pois a janela “vendas” já está aberta!?
Como faço para impedir que isso aconteça?
Espero que consigam entender.
Obrigado!!
[quote=zschornack]Alô pessoal! Será que alguém consegue tirar essa minha dúvida besta?
É possível carregar na memória dois objetos com o mesmo nome??
por exemplo:
JFrame janela = new JFrame();
//e de novo
JFrame janela = new JFrame();
Obrigado!![/quote]
Não, primeiro que esse código vai gerar um erro e nem irá compilar pois você está duplicando a declaração de um objeto.
Para o código compilar você deveria ter algo assim:
JFrame janela = new JFrame();
//e de novo
janela = new JFrame();
Esse código compila normalmente, porém, ao passar pela segunda declaração o objeto janela retornará as características inicias do objeto JFrame.
dentro da classe da janela de venda
vc cria um instacia estatica dela propria, por exemplo
[code]…
public class frmVenda extends javax.swing.JFrame{
public static frmVenda instance = null;
…[/code]
na tela que chama essa frame vc pode fazer o seguinte
if (frmVenda.instance == null){
frmVenda.instance = new frmVenda();
frmVenda.instance.setVisible(true);
}else{
frmVenda.instance.requestFocusInWindow();
}
tenta alguma coisa assim
1 curtida
pesquisa como restaurar um JFrame pra no caso de ele estar minimizado
[quote=zschornack]Alô pessoal! Será que alguém consegue tirar essa minha dúvida?
Estou criando um programa e gostaria de que ele não abrisse duas janelas idênticas… Tipo, se a janela de “vendas” já está aberta, ao clicar no botão “vender” não poderia abrir uma janela, pois a janela “vendas” já está aberta!?
Como faço para impedir que isso aconteça?
Espero que consigam entender.
Obrigado!![/quote]
Cara só não muda a pergunta que foi feita inicialmente, é preferivel que você abra um outro tópico.
pior que é mesmo o maluco mudou a pergunta uhahauuha
ate achei estranho a resposta, nem tinha lido a pergunta anterior
mas o zschornack procura não fazer isso
cria outro tópico, e antes disso pesquise, depois pergunte
abraço!
Foi mals, é que eu queria deletar o primeiro mas não encontrei essa opção ^^
Eu tinha acabado de resolver aquela dúvida ^^ então como não podia deletar eu mudei o post ^^
Achei que não tivesse problema, e duvidei que responderiam tão rápido…
Minhas humildes desculpas!
Voltando ao post, quero agradecer ao Robsonvnt
Deu certo, só foi eu acrescentar uma linha ao seu código dentro do método construtor:
[quote]dentro da classe da janela de venda
vc cria um instacia estatica dela propria, por exemplo
...
public class frmVenda extends javax.swing.JFrame{
public static frmVenda instance = null;
...
... public class frmVenda extends javax.swing.JFrame{ public static frmVenda instance = null; ...
[b]//dentro do construtor eu adicionei
instance = this;[/b]
na tela que chama essa frame vc pode fazer o seguinte
[code]
- if (frmVenda.instance == null){
-
frmVenda.instance = new frmVenda();
-
frmVenda.instance.setVisible(true);
- }else{
-
frmVenda.instance.setVisible(true);
-
frmVenda.instance.setExtendedState(JFrame.NORMAL);
7.}
if (frmVenda.instance == null){ frmVenda.instance = new frmVenda(); frmVenda.instance.setVisible(true); }else{ frmVenda.instance.requestFocusInWindow(); }[/code] [/quote]
Valeuzão Robson!!
Opa!
Faltou adicionar um evento
private void formWindowClosed(java.awt.event.WindowEvent evt) {
instance = null;
}
agora sim está funcionando legal!
Vlws!