Como abrir janela passando parâmetro em uma função [RESOLVIDO]

11 respostas
warquia

Boa tarde amigos, estou com uma duvida de como fazer uma função onde eu recebo o nome do form e ele abre.
isso porque to fazendo um Formulário Padrão para o sistema

Tentei fazer assim mais não deu certo.

public void abreform(JFrame novoForm) { new novoForm().setVisible(true); }
Ai tentei executar assim

abreform(principal);

Alguem já consegui fazer isso?

11 Respostas

pmlm

Porque new ???

public void abreform(JFrame novoForm) {  
        novoForm.setVisible(true);  
    }
diego_ms136

Cara se você usar new irá abrir várias instâncias da mesma janela não vejo problema no código
porém acho que ajudaria talvez hein se fizesse assim :

JFrame tela = novoForm;
tela().setVisible(true);

warquia

diego_ms136:
Cara se você usar new irá abrir várias instâncias da mesma janela não vejo problema no código
porém acho que ajudaria talvez hein se fizesse assim :

JFrame tela = novoForm;
tela().setVisible(true);


Diego perfeito, agora só estou com um erro na chamada da funçãoabreform(principal);
Fica aparecendo um erro.

warquia
pmlm:
Porque new ???
public void abreform(JFrame novoForm) {  
        novoForm.setVisible(true);  
    }
pmlm Perfeito agora só estou com um erro na chamada da função
abreform(principal);
Fica aparecendo um erro.
E

Qual é o erro?

warquia

cannot find symbol symbol: variable Principal
só que ele não e uma variável e sim um JFrame.

marcoacsilva

Você instanciou o objeto antes de passar como parâmetro? Ou está passando diretamente o JFrame?

O certo é: Principal janela = new Principal(); abreform(janela);

Poste o código completo.

warquia

marcoacsilva:
Você instanciou o objeto antes de passar como parâmetro? Ou está passando diretamente o JFrame?

O certo é: Principal janela = new Principal(); abreform(janela);

Poste o código completo.

Marco e quase isso, só queria fazer isso dentro da função instanciar e Abrir o form. E não instanciar fora dela…
Muito obrigado pela força!

marcoacsilva

Bom…dessa maneira acredito que seja inviável. E até não faz sentido.

Se tu precisa chamar a janela e instanciar em um método, não é mais facil chamála direto?

Ou então, instancie o objeto dentro do argumento:

abreform(new Principal());

Eu não entendi muito bem se é isso que você quer.
Você estará fazendo o mesmo que instanciar um objeto do JFrame Principal e dar um setVisible(true) nele, só que do jeito difícil.

warquia

marcoacsilva:
Bom…dessa maneira acredito que seja inviável. E até não faz sentido.

Se tu precisa chamar a janela e instanciar em um método, não é mais facil chamála direto?

Ou então, instancie o objeto dentro do argumento:

abreform(new Principal());

Eu não entendi muito bem se é isso que você quer.
Você estará fazendo o mesmo que instanciar um objeto do JFrame Principal e dar um setVisible(true) nele, só que do jeito difícil.

Cara perfeito, 100%.
Muito obrigado Marco e a todos que me deu essa forçinha

marcoacsilva

Ótimo então. Coloque [RESOLVIDO] no titulo do post. Abraço.

Criado 17 de outubro de 2012
Ultima resposta 18 de out. de 2012
Respostas 11
Participantes 5