Evento janela e botão

4 respostas
F

to com o seguinte problema criei um metodo chamado fecharprograma() quero invocalo para fechar a janela no evento do botão e invocar o mesmo metodo no evento de janela porem ta dando diversos erros alguem pode me dizer oq tem de errado ai pq o metodo não ta funcionando valew??

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowListener;
import java.util.Random;
import javax.swing.JOptionPane;

private void fecharprograma()
	{
		String opcoes[] = {"Sim","Não"};
		int     opc     = JOptionPane.showOptionDialog(null,"Confirma o encerramento?","Confirmação",JOptionPane.DEFAULT_OPTION,JOptionPane.QUESTION_MESSAGE,null,opcoes,opcoes[1]);
		//
		if ( opc == 0 )
			System.exit(0);
	}
}
public class eventos implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{	
		fecharprograma();
	}
}
		
public class eventojanela implements WindowListener
{
	public void windowClosing(WindowEvent e)
	{
		fecharprograma();
	}
}

4 Respostas

Marck

Bom dia!

O problema e q o metodo esta fora do corpo da classe.
Deveria ficar assim:

public classeventos implements ActionListener  
{  

private voidfecharprograma()  
{  
String opcoes[] = {"Sim","Não"};  
intopc = JOptionPane.showOptionDialog(null,"Confirma o encerramento?","Confirmação",JOptionPane.DEFAULT_OPTION,JOptionPane.QUESTION_MESSAGE,null,opcoes,opcoes[1]);  
//  
if( opc == 0)  
System.exit(0);  
}  
}  
 .
 .
 .

Até!

F

isso que num to entendendo este metodo poderia até mesmo estar em outro arquivo que deveria funcionar!!! ou não ???quais são as regras para um metodo funcionar quando é invocado??

F

ninguem??

Marck

Olá...

Vc pode usar metodos em outras classes (arquivos) atraves de uma instancia:

public classeventos implements ActionListener   
 {   
  
 private voidfecharprograma()   
 {   
 String opcoes[] = {"Sim","Não"};   
 intopc = JOptionPane.showOptionDialog(null,"Confirma o ncerramento?","Confirmação",JOptionPane.DEFAULT_OPTION,JOptionPane.QUESTION_MESSAGE,null,opcoes,opcoes[1]);   
 //   
 if( opc == 0)   
 System.exit(0);   
 }   
 }

na outra classe vc teria:

public class Test{

          public Test(){
  
          //cria uma instancia
         classeventos cv = new classeventos();
         //atraves da referencia cv vc pode acessar o metodo desde q ele seja publico...(ver modificadores de    //acesso
         
         cv.fecharprograma();
}

}
ou pela Herança:
public class Test extends classeventos{

          public Test(){
        
          fecharprograma();
          
          }
//aqui vc não precisa de instancia justamente por estar herdando a classe classeeventos

}

}

Dá uma lida sobre o que citei e os modificadores de acesso também...

Abraço.

Criado 3 de setembro de 2007
Ultima resposta 5 de set. de 2007
Respostas 4
Participantes 2