Eu travei com esse negócio de evento! help-me!

2 respostas
_

bem... tenho um problema. tou fazendo um trabalho (implementar quicksort com interface grafica). está quase tudo pronto.falta apenas corrigir um defeito nos botões. tem um botao que o usuario entra uma sequencia de numeros desordenados, ou um numero que indica a quantidade de termos da sequencia pra ser gerado uma sequencia aleatoria(isso controlado por um JRadioButton). e tem o botao que aplica o algoritmo quicksort. o algoritmo que implementei no actionPerformed(ActionEvent e) gera um objeto quando clico no botao A, mas preciso desse objeto para ser usado quando clicar no botao B. mas não consigo!
Dá varios erros! (sou iniciante viu, ignorem se o codigo tah muito mal feito)
o codigo eh mais ou menos isso:

public void actionPerformed(ActionEvent e){
			
  int [] lista;
  Imprime imp;
  QuickSort qs;	
			
  if (e.getSource()==botaoIN){
			
    if (radio1.isSelected()){
			
      Entrada input = new Entrada();
      lista = input.Sequencia(); 
      qs =  new QuickSort(lista, lista[0]); //essa linha eh //importante, aki gerei o objeto qs!
      imp = new Imprime(lista, lista[0]); 
      texto.setText(imp.listaDesordenada()); 
    } 
			   
    else  if (radio2.isSelected()){
			   			           
      Entrada input = new Entrada();
			     		 
      int size = input.Size(); 
      qs = new QuickSort(size); //aki tambem!
      lista = qs.desordLista();
      imp = new Imprime(lista, lista[0]); //lista[0] contem o tamanho da lista.
      texto.setText(imp.listaDesordenada());
    }
  }
						
  if(e.getSource()==botaoQS){
			
   //AKI NAO CONSIGO USAR O OBJETO qs GERADO antes! esse codigo tah realmente mal feito! mas nao tenho outra ideia!
		       		        		 
    lista = qs.qSort(1,lista[0]);
    imp = new Imprime(lista, lista[0]);
    texto.setText(imp.listaOrdenada());
  }
}

dá esse erro: variable qs might not have been initialized
lista = qs.qSort(1,lista[0]);
agradeço quem ajudar!

[color="green"][size="11"]* Editado para conter BBCode no seu código, por favor, utilize sempre a tag code quando for postar algum código - matheus[/size][/color]

2 Respostas

eltonk

Vc está inicializando a tua variável qs dentro de uma estrutura de repetição(ir e else), deste modo q vc está fazendo, elas só são válidas detnro desta estrutura. O que ocorre que vc está tentando utilizar essas variáveis fora desta estrutura, e isso não dah =(

O que vc pode fazer eh inicializar ela antes do if, junto onde vc apenas a declara…

Abraços, :wink:

H

eltonk, na verdade o objeto qs está declarado fora de qualquer if/else, o erro que está dando é que esse objeto não foi inicializado por isso o compilador tah chiando …

acredito que a solução é fazer isso na hora da inicialização do objeto qs:

QuickSort qs = null;
Criado 20 de março de 2004
Ultima resposta 22 de mar. de 2004
Respostas 2
Participantes 3