Problema ao carregar JFrame

8 respostas
I

Tô fazendo um programinha que em um determinado momento, o sistema deve abrir outra janela para entrada de dados. Um InternalFrame resolveria o meu problema, mas uma nova janela tipo JDialog ou outro JFrame ficaria mais elegenate.

Eu criei o novo frame separado e quando chamo o novo Frame através do código:

javax.swing.JFrame funcionarios1 = new CadastrodeFuncionarios();
funcionarios1.setVisible(true);

Ele abre DUAS janelas e não somente uma. Alguem temalguma idéia do que pode estar acontecendo e qual a solução???

8 Respostas

brunocosta

dê mais detalhes, poste o código do construtor da classe que c tá criando… assim por alto fica difícil saber…

pauloperes

Iatan,

Não seria:

CadastrodeFuncionarios funcionarios1 = new CadastrodeFuncionarios();
funcionarios1.setVisible(true);

Valeu,

Paulo

brunocosta

Mas CadastrodeFuncionarios deve tá herdando de JFrame… então não teria problema o modo q ele usou pra criar… e em muitos casos é até recomentado… pra o caso de uma implementação de uma classe abstrata… por exemplo:

Set telefones = new HashSet();

=)

danieldestro

Você quer dizer que aparecem dois itens na barra de tarefas, certo?
Você tem que usar JDialog.

JP1

Ou montar tudo dentro de um JDesktopPane, que no lugar de JFrames, vc usa JInternalFrame.

:thumbup:

I

“danieldestro”, vc descreveu exatamente o que está acontecendo, mas eu já havia testado usar um JDialog e o efeito foi o mesmo.

"JP® ", realmente o JInternalFrame resolve, mas eu queria implementar algo mais “flexivel”, porque o InternalFrame fica restrito ao espaço da minha janela principal e a minha janela principal é muito pequena. Então ficaria mais “bonitinho pro usuário” se eu abrisse uma nova janela de modo que o usuário pudesse arrastar essa nova janela prá qualquer lugar da tela sem ter que redimensionar a tela principal.

Tá tudo saindo certinho inclusive a conexão com o banco e as operações, exceto pelo fato de que ele abre duas janelas. o código é o seguinte:

private void cbxOpcoesItemStateChanged(java.awt.event.ItemEvent evt) {

// RETORNA 0, 1, 2, OU 3. RELATIVOS ÀS OPÇÕES SELEC NO MENU

int opcao;

opcao = cbxOpcoes.getSelectedIndex();

if(opcao == 1){ //REGISTRAR PONTO fRegistrarPonto teste = new fRegistrarPonto();

teste.setVisible(true);

}

}

…
fredferrao

“danieldestro”, vc descreveu exatamente o que está acontecendo, mas eu já havia testado usar um JDialog e o efeito foi o mesmo.

no construtor do JDialog vc precisa passar o JFrame “pai” como argumento, ou seja o seu JFrame principal:

JDialog d = new JDialog(jframePrincipal, "Cadastro de Clientes");
JP1

iatan:
“danieldestro”, vc descreveu exatamente o que está acontecendo, mas eu já havia testado usar um JDialog e o efeito foi o mesmo.

"JP® ", realmente o JInternalFrame resolve, mas eu queria implementar algo mais “flexivel”, porque o InternalFrame fica restrito ao espaço da minha janela principal e a minha janela principal é muito pequena. Então ficaria mais “bonitinho pro usuário” se eu abrisse uma nova janela de modo que o usuário pudesse arrastar essa nova janela prá qualquer lugar da tela sem ter que redimensionar a tela principal.

Tá tudo saindo certinho inclusive a conexão com o banco e as operações, exceto pelo fato de que ele abre duas janelas. o código é o seguinte:

private void cbxOpcoesItemStateChanged(java.awt.event.ItemEvent evt) {

// RETORNA 0, 1, 2, OU 3. RELATIVOS ÀS OPÇÕES SELEC NO MENU

int opcao;

opcao = cbxOpcoes.getSelectedIndex();

if(opcao == 1){ //REGISTRAR PONTO fRegistrarPonto teste = new fRegistrarPonto();

teste.setVisible(true);

}

}

…</blockquote>

Desse ponto de vista, você tem toda razão. Fica melhor do jeito que você deseja fazer.

Criado 21 de julho de 2005
Ultima resposta 22 de jul. de 2005
Respostas 8
Participantes 6