Ir ao conteúdo

Posts recomendados

Postado

Como fechar esta tela sem fechar toda aplicação


 

public class CadastroTurma extends JFrame{
    private JLabel nome = new JLabel("Nome:");
    private TextField nomeTextFild = new TextField();
    private JButton CadastrarTurma = new JButton("Cadastrar");
    private JButton Sair = new JButton("Sair");

public CadastroTurma(){
        super("Projeto");
        this.setSize(716,130);
        this.setVisible(true);
        Container tela = getContentPane();
        tela.setLayout(null);
        this.setContentPane(tela);
        this.setLocationRelativeTo(null);
        this.setResizable(false);    
        
        tela.add(nome);
        nome.setBounds(9, 9, 50, 25);
        
        tela.add(nomeTextFild);
        nomeTextFild.setBounds(72, 9, 300, 25);
         
        tela.add(CadastrarTurma);
        CadastrarTurma.setBounds(400, 9, 100, 25);
        
        tela.add(Sair);
        Sair.setBounds(512, 9, 100, 25);

        Sair.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                 System.exit(0);
            }
        });

        
        
}
    
}

 

Postado

@Esdras Fragoso Bem, você tacou o código mas esqueceu de se explicar, ai fica difícil.

Chutando pelo titulo você pode deixar a tela invisível:

this.setVisible(false);

O problema que nesse caso, ele ainda vai existir ,ou seja, vai guardar dados armazenados nela e usar memória.

O outro método seria dar um "clean" nela:

this.dispose();

Nesse caso a janela deixar de existir e seu espaço de memória é liberado, porém caso deseja reabri-la, vai ter que inicializar novamente.

  • Curtir 1
Postado

Como eu uso o this.dispose(); sempre que tento da erro! 

 

 Sair.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 
                this.dispose();
            }
        });

sempre que eu tento colocar isto dentro do Action da erro! 

adicionado 4 minutos depois

@zOpek Meu amigo deu Certo aqui obrigado. 

  • Curtir 1
Postado

O problema aí ficou no escopo ... seu código tenta referenciar this (ou seja, o próprio objeto), porém no local que você coloca esse this, o escopo dele é o ActionListener (pois esse é o objeto que está executando o método) ... o mais simples a ser feito seria o seguinte:

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
final JFrame window = this;
Sair.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        window.dispose();
    }
});

 

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...