NullPointerException com o JTextField

10 respostas
M

Olá, sou iniciante no java e tenho como atividade final da disciplina POO montar um programa que crie um concurso de quadrilhas juninas.
O problema acontece lá no "class Button1", quando dou run na classe TelaCriarConcurso e digito no JTextField e clico no botão button1 ele dá um NullPointer e menciona a linha "tlc.box.addItem(cq.getAno());" , não sei se estou certo mas acredito que isso quer dizer que a string cq.getAno() é null, e não deveria pois o usuário insere uma string no JText e usando o getText eu instancio um ConcursoDeQuadrilhas(ano).
Desde ontem a tarde que pesquiso sobre esse tipo de erro mas não consegui solucionar.
Agradecido a quem ajudar, abraços.

public class TelaCriarConcurso{

	TelaListarConcurso tlc = new TelaListarConcurso();
	TodosConcursos tc = new TodosConcursos();
	ConcursoDeQuadrilhas cq;
	TelaCriarQuadrilhas tcq = new TelaCriarQuadrilhas();
	JFrame frame;
	JButton button1;
	JButton back;
	JTextField criar;
	
	public static void main(String [] args)	{
		TelaCriarConcurso ctc = new TelaCriarConcurso();
		ctc.go();
	}

	public void go(){
		JLabel nome = new JLabel("                                   CRIAR CONCURSOS");    
		frame = new JFrame();
		criar = new JTextField("Digite aqui o ano do concurso");
		button1 = new JButton ("Cadastrar este concurso");
		back = new JButton ("Voltar");
			    
	    frame.add(nome); 
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.add(criar);
		frame.getContentPane().add(button1);
		frame.getContentPane().add(back);
		frame.setLayout(new GridLayout(4,2));
		frame.setSize(300,300);
		frame.setVisible(true);
		frame.getContentPane().setBackground(Color.white);
		button1.addActionListener(new Button1());
		back.addActionListener(new ButtonB());
		
	}
	
	class Button1 implements ActionListener	{
		public void actionPerformed(ActionEvent event)	{
			//Integer.parseInt(criar.getText());
			String ano = criar.getText();
			cq = new ConcursoDeQuadrilhas(ano);
			tc.novoConcurso(cq);
			tlc.box.addItem(cq.getAno());
			/*for(int i = 0;i<tc.getConcursos().size(); i++ ){    
				ConcursoDeQuadrilhas q = tc.getConcursos().get(i); 
				tlc.box.addItem(cq.getAno());    
			}*/
			tcq.go();
		}
	}

10 Respostas

M

Não sei se ajuda:

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at View.TelaCriarConcurso$ButtonA.actionPerformed(TelaCriarConcurso.java:56)

Luciano_Lopes

Você esta chamando o “cq” antes de cria-lo, dê um new nele para ver se resolve.

M

Luciano, o cq foi criado na linha 5, o código tá bagunçado pq fico tentando mtas formas direferentes =/

gabrielhof

Não amigo, você está declarando a váriavel na linha 5.
A váriavel está sendo inicializada na linha 42, no listener do seu botão.

M

Entendi, obrigado por tentar a judar, mas o erro persiste.

M

Mais ninguém tem uma idéia?
tá batendo o desespero

Luciano_Lopes

Posta o log do erro aqui

M

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at View.TelaCriarConcurso$ButtonA.actionPerformed(TelaCriarConcurso.java:57) 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.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(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)

gabrielhof

O Probleme deve estar dentro dessa classe aqui: TodosConcursos.
Aquele atributo box dessa classe não deve ter sido inicializado.

M

Gabriel, obrigado pelo toque, não dá mais o nullpointer, agora o problema é que o comboBox continua vazio msmo dps de criar um concurso, tá tenso

Criado 3 de agosto de 2011
Ultima resposta 3 de ago. de 2011
Respostas 10
Participantes 3