JFrame Principal!

19 respostas
D

Seguinte no meu JFrame principal eu fiz uma telinha que pede login e senha, ai botei pra caso a pesssoa acerta aparecer outro jframe, mas ai como faço para fechar esse jframe principal, porque o setvisible não funciona?

Obrigado

19 Respostas

davidtiagoconceicao
jFrame.dispose();


http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Window.html#dispose()

D

Não deu mto certo :confused:

davidtiagoconceicao

O que aconteceu? Ocorreu alguma mensagem? A janela não desapareceu?
Poste trechos do seu código.

C

já faz um tempinho q eu já fiz isso, talvez eu possa te ajudar.

Quando o cara acetava o login eu pegava a tela de login e dava (eu acho) um .close, ou um .remove, ou um .delete, ou um .destroy, acho q alguns desses.
Tenta um desses e diz aqui se deu certo :wink:

davidtiagoconceicao

cabelograff:
já faz um tempinho q eu já fiz isso, talvez eu possa te ajudar.

Quando o cara acetava o login eu pegava a tela de login e dava (eu acho) um .close, ou um .remove, ou um .delete, ou um .destroy, acho q alguns desses.
Tenta um desses e diz aqui se deu certo :wink:

.close, .delete e .destroy não existem na classe JFrame.
.remove existe, mas para remover componentes que estão sendo exibidos. O que você deve ter feito foi remover os componentes que exibiam a tela inicial e adicionar novos componentes.
Ou usou outra classe.

sf.marcius

opa,

tenta fazer assim:

// seta a acao ao se executar o dispose(). se nao for setado,
// sera usado EXIT_ON_CLOSE
jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
jFrame.dispose();
D

Tentei essa última que falaram mais mesmo assim deu erro:

run:

Exception in thread “AWT-EventQueue-0” java.lang.RuntimeException: Uncompilable source code - non-static method setDefaultCloseOperation(int) cannot be referenced from a static context

at locadora_nova.Locadora.bta_acessarsistemaActionPerformed(Locadora.java:3896)

at locadora_nova.Locadora.access$6000(Locadora.java:13)

at locadora_nova.Locadora$70.actionPerformed(Locadora.java:3821)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.Component.processMouseEvent(Component.java:6134)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)

at java.awt.Component.processEvent(Component.java:5899)

at java.awt.Container.processEvent(Container.java:2023)

at java.awt.Component.dispatchEventImpl(Component.java:4501)

at java.awt.Container.dispatchEventImpl(Container.java:2081)

at java.awt.Component.dispatchEvent(Component.java:4331)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)

at java.awt.Container.dispatchEventImpl(Container.java:2067)

at java.awt.Window.dispatchEventImpl(Window.java:2458)

at java.awt.Component.dispatchEvent(Component.java:4331)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Shelson

vc tah colocando tudo no metodo main ?

D

Botei o código:

jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); jFrame.dispose();

Dentro de um MouseClicked que é quando clica em um botão!
E deu o erro acima

Shelson

dexter0x:
Botei o código:

jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); jFrame.dispose();

Dentro de um MouseClicked que é quando clica em um botão!
E deu o erro acima

kd o codigo ? :evil:

edipokbelo

coloca todo o seu código ai :smiley:

D

A parte do código ta ai:

int SenhaDigitada = Integer.parseInt(txt_senha.getText()); if (SenhaDigitada == Senha) { frame_painelprincipal.setBounds(1,1,1440,835); frame_painelprincipal.setVisible(true); } else JOptionPane.showMessageDialog(null,"Desculpe, mas a senha está incorreta!","Atenção!",JOptionPane.ERROR_MESSAGE);

Preciso fazer caso entre naquele IF o jFrame seja fechado e só o frame_painelprincipal fique aberto!

D

:smiley:

D

Alguém pra me ajudar?

edipokbelo

posta o seu código todo, por favor

edipokbelo

bom eu vou usar o seu trecho de código como exemplo :

int SenhaDigitada = Integer.parseInt(txt_senha.getText()); if (SenhaDigitada == Senha) { frame_painelprincipal.setBounds(1,1,1440,835); frame_painelprincipal.setVisible(true); this.dispose(); } else JOptionPane.showMessageDialog(null,"Desculpe, mas a senha está incorreta!","Atenção!",JOptionPane.ERROR_MESSAGE);

se não der certo eu posto o código do meu form aqui ou você posta o código do seu que eu adapto :wink:

[]'s

ViniGodoy

Não fique upando tópicos.

Não compare Strings com ==. Use equals:

if (SenhaDigitada.equals(Senha)) {

== testa se duas Strings ocupam a mesma posição de memória. Veja

String vinicius = new String("Vinicius");
String vinicius2 = new String("Vinicius");

System.out.println(vinicius == vinicius2); //Retorna false.
vinicius.equals(vinicius2); //retorna true

Portanto são altíssimas as chances do seu código nunca estar entrando dentro do seu if. Isso poderia ser facilmente observado se você tivesse usado um depurador, como o que se encontra no Eclipse ou no Netbeans.

D

Mais eu to fazendo comparação de integer…
E esta entrando no if porque o frame_painelprincipal esta abrindo normalmente quando eu acerto a senha.
O problema que quando abre esse painel eu precisaria fechar o JFrame que é gerado automatico no NetBeans que é aonde é a tela que pede a senha. O problema é como fechar ele e é isso que quero saber.

Obrigado

D

Ae edipokbelo, muito obrigado.
Funcionou, usei o this.dispose();
E funciono o jframe principal fechou!

Muito obrigado!

Criado 12 de janeiro de 2009
Ultima resposta 16 de jan. de 2009
Respostas 19
Participantes 7