Executa codigo do if mas depois da nullpointerexception[resolvido]

ola,
tenho um painel que crio apos fazer uma pesquisa no banco de dados até ai tudo bem ele pesquiso e eu consigo adicionar o resultado na tela mas apos isto ocorre este erro

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at efetuaPagamento.registraPagamento(efetuaPagamento.java:339) at efetuaPagamento$3.actionPerformed(efetuaPagamento.java:187) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
meu codigo é este

[code]try
{
int q=0;
int x=30;
int y=20;
JPanel panel=new JPanel();
panel.setBounds(y, 270, 500, 200);
panel.setBackground(Color.cyan);
int maior=0,num1=0;

		System.out.println("select parcelas from financeiro where rc_aluno='"+ t2.getText() +"'");
		resultado = comando.executeQuery("select parcelas from financeiro where rc_aluno='"+ t2.getText() +"'");
		while(resultado.next())
		{
			l[q]=new JLabel(resultado.getObject(1).toString());
			q++;
		}
		for(int i=0;i<l.length;i++)
		{
			if(l[i].getText()!=null)//o erro aponta para esta linha
			{	
				num1=Integer.parseInt(l[i].getText());
				if(maior<num1)
				{
					maior=num1;
					System.out.println("o maior é "+maior+" num1 é "+num1);
					l[i].setBounds (20, x,120, 25);
					panel.add(l[i]);
					tela.add(panel);
					repaint();
					x+=30;
				}
			}
		}
		System.out.println("fora do if\n o maior é "+maior+" num1 é "+num1);
		//ver qts parcelas tm dai d acordo com este num sao criados as caixas d txt no painel
		//depois add na tela


	}
	catch(SQLException er)
	{
		er.printStackTrace();
	}
}[/code]

alguém pode me ajudar a encontrar o erro?
obrigada

e qualquer codigo que eu tente executar após akele for não roda!!!
alguém pode me ajudar a encontrar o erro?
obg
=]

Qual o código da linha 339 da sua classe efetuaPagamento.java?

Ops, acabei de ver seu comentário no código.
Tente printar o conteúdo da variável antes do if.

O array de JLabels “l” não está instanciado.
Seria o mesmo que você declarar

JTextField jtf;

//falta: jtf = new JTextField();

if(jtf.getText() != null){

...

Entendeu?

[quote=drsmachado]O array de JLabels “l” não está instanciado.
Seria o mesmo que você declarar

JTextField jtf;

//falta: jtf = new JTextField();

if(jtf.getText() != null){

...

Entendeu?[/quote]

É mais provável que seja uma posição específica. Senão já daria erro no while() anterior.

ola Stormqueen1990,
fiz o print como tu disseste antes do if e apareceu os mesmos valores que são exibidos dentro do laço do if
o print ficou assim

antes do if 1 antes do if 2 antes do if 3 antes do if 4 antes do if 5
e ta dando nullpointerexception na mesma linha =[

drsmachado,
eu instanciei o array de JLabel,
=[
só que o tamanho dele é maior que o resultado que estou pegando do banco tipo o tamanho do vetor l é 12 enquanto eu pego do banco 5 resultados da minha pesquisa,é por isto que esta dando erro?
é q eu criei o vetor deste tamanho porque é o maximo de resultados que eu posso ter

Sim, é possível.
Você chama o método “getText()”.
Tente colocar :

if(l[i] != null){
if(l[i].getText() != null){

gente modifiquei o seguinte

while(resultado.next()) { l[q]=new JLabel(resultado.getObject(1).toString()); q++; } System.out.println(q); for(int i=0;i<q;i++) {...}
agora eu percorro so as posições preenchidas do meu vetor não esta dando mais akele erro mas sera que isto nao me trara outros problemas no codigo depois?

drsmachado
vou tentar do jeito que tu disseste com 2 if’s
=]

Era uma alternativa.
Outra sugestão, seria utilizar um outro tipo de colection, talvez uma lista, suporta objetos e você consegue iterar sobre ela com mais facilidade.
Acredito que até um map seria interessantes.

obrigada drsmachado!
agora funcionou direitinho
=]

Outra solução que evitaria 2 ifs seria ter um contador dentro do while, e no for tu iterar só até o valor do índice ser menor que o contador.
Ou usar uma collection como o drsmachado disse.