Ola,
como eu fasso pra terminar um programa qdo um botao eh clicado?
tipo qual eh o API metodo?
obrigado
Ola,
como eu fasso pra terminar um programa qdo um botao eh clicado?
tipo qual eh o API metodo?
obrigado
Segue exemplo comentado
[code]import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
/**
*/
public class FechaPrograma extends JFrame {
private static final long serialVersionUID = 1L;
public static void main(String[] args) {
new FechaPrograma();
}
// Esta opção só vai funcionar se não
// houverem outras janelas abertas
public void opcao1(ActionEvent e) {
this.setVisible(false);
this.dispose();
}
// Fecha a aplicação independente
public void opcao2(ActionEvent e) {
System.exit(0);
}
private void addEvents() {
// Adciona evento de clique no botão 1
opt1.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
opcao1(e);
}
}
);
// Adciona evento de clique no botão 2
opt2.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
opcao2(e);
}
}
);
}
private void init() {
// fecha a aplicação quando fechada a janela
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
// Aplicar um layout manager
this.getContentPane().setLayout(new BorderLayout());
// Cria o botão 1
opt1 = new JButton("OPCAO 1");
// Adiciona botão 1 no container
getContentPane().add(opt1, BorderLayout.NORTH);
// Cria o botão 2
opt2 = new JButton("OPCAO 2");
// Adiciona botão 2 no container
this.getContentPane().add(opt2, BorderLayout.SOUTH);
// Adiciona eventos nos botões
addEvents();
pack();
setVisible(true);
}
public FechaPrograma() {
init();
}
public JButton opt1 = null;
public JButton opt2 = null;
}[/code]
… analizei o seu codigo…
e tentei varias formas
e ainda num ta funcionando…
oq o System.exit(0); faz?
e o dispose();?
tem q colocar setDefaultCloseOperation(DISPOSE_ON_CLOSE);
?
fiz tudo isso e num deu…
obrigado
private static final long serialVersionUID= 1L;
e pra q vc chamo o pack()?
vlw
ah o pack eu entendi… hehe
o meu codigo eh praticamente esse de fechar o programa
…
else if(e.getSource() == nao)
{
fechar(e);
}
} // end actionPerformed
public void fechar(ActionEvent e)
{
setVisible(false);
dispose();
}
…
hello???
[quote=darkbluecast]… analizei o seu codigo…
oq o System.exit(0); faz?
e o dispose();?
tem q colocar setDefaultCloseOperation(DISPOSE_ON_CLOSE);
fiz tudo isso e num deu…
obrigado[/quote]
System.exit(0) finaliza a aplicação independente de quantas instâncias estejam criadas nessa sessão da VM.
dispose() limpa todos os objetos criados por esta janela. Inclusive ele mesmo. Se este for o único objeto da aplicação ele finaliza a VM.
setDefaultCloseOperation(DISPOSE_ON_CLOSE) diz pro programa que quando o X da janela for fechada ele finaliza a VM, senão a janela some mas a vm continua ativa…
serialVersionUID é um controle de versão da VM…
Se o seu código não está funcionando, tenta criar uma classe identica a essa que eu enviei e executar.
Depois vc vai fazendo suas alterações até achar o ponto que está o erro!
senão der certo, posta a sua classe toda!
ahhh vlw… funcionou…
deu para esclarecer melhor… hehehe
obrigado…
Na verdade o serialVersionUID é um atributo de controle para classes serializáveis (que implementam Serializable). Essa classe que você está fazendo não precisa ter serialVersionUID.
Para maiores informações: http://www.guj.com.br/posts/list/26252.java