Exception in thread "AWT -EventQueue-0" NullPonterException

10 respostas
Marck

Olá pessoal, boa noite e feliz ano novo a todos.

Tenho uma aplicação com muitos JText, JLabel e JCombo. Na hora que os intacio deixo setados como falso. Quero que na inicialização apareca um logo, e quando invocado certo metodo seto os mesmos com verdadeiros.

Por que recebo essa mensagem de erro e porque os botões e caixas não aparecem corretamente?

Erro:

Exception in thread "AWT-EventQueue-0" java.lang.NullPonterException

Grato,
Marck

10 Respostas

Mantu

Por gentileza, poste o erro completo que aparece na tela (O stack trace)

ViniGodoy

Algum dos objetos não foi inicializado e você tentou usar um de seus métodos.

O erro que você colocou não ajuda muito. Ele só indica que o problema ocorreu em resposta à algum evento da AWT. Seria num clique de botão, ou numa seleção.

Você deve olhar mais embaixo na stackTrace para ver se encontra por lá um método que você tenha implementado, onde o problema realmente esteja localizado.

Marck

Olá.

Eu consigo indentificar qual o metodo que esta dando erro só não sei o que fazer.
Segue o erro:

Exception in thread "AWT-EventQueu-0" java.lang.NullPointerException at rh.setTrue<rh.java:1005> at rh$1.actionPerformed<rh.java:699> at javax.swing.AbstractButton.fireActionPerformed<AbstractButton.java:1849>

O metodo seria o setTrue, mas o que devo fazer, inicializar todas a variaveis deste metodo?

Grato,
Marck

Mantu

Faça o seguinte: Poste aqui o método setTrue da sua classe rh, destacando para nós a linha número 1005. Perceba que é essa a linha que o stack trace indica que ocorreu o NullPointerException

squall926

Ola!!!
provalvelmente vc ta tentando usar um componente que não foi inicializado.
posta o codigo ai!!!

S

Pessoal, bom dia, como sou muito novato em java, estou tendo problemas para inserir um ícone em um JtoogleButton, através de um classpath. O erro retornado é o seguinte:

<blockquote>Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException

at javax.swing.ImageIcon.(ImageIcon.java:138 )

at NovoJFrame.initComponents(NovoJFrame.java:29 )

at NovoJFrame.(NovoJFrame.java:16)

at NovoJFrame$1.run(NovoJFrame.java:62)

at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209 )

at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273 )

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183 )

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173 )

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168 )

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160 )

at java.awt.EventDispatchThread.run(EventDispatchThread.java:121 )

</blockquote>

desde já grato pela ajuda, e parabéns a todos que fazem deste fórum, um dos mais, senão o mais respeitado fórum sobre java no país.

[]´s

Seth Angellus.

MarcosOLIVEIRA

ola!!

tambem estou com mesmo problema! mas ja tentei inicializar de todas a maneiras a variaveis que estou utilizando no metodo.
ja fiz ate o velho debug com system.out.print!

olha oque ocorre:

quando clico no botao aciona um evento que deveria lançar pro meu banco de dados uma serie de strings quardadas em um vetor atraves de um for.

consigo imprimir a string de comando sql tudo certinho!
mas aqui vai o que deixa tudo louco!
o erro ocorren ante de imprimir!!

vou destacar alinha de erro!

private void CONFIRMAActionPerformed(java.awt.event.ActionEvent evt) {                                         
 
String sqlinsert;

    int opcao_escolhida = JOptionPane.showConfirmDialog(null, "Deseja criar perfil:"+jTextFieldDESCPERFIL.getText().toUpperCase() ,"Confirmar ", JOptionPane.YES_NO_CANCEL_OPTION);
    if(opcao_escolhida == JOptionPane.YES_OPTION){
        
    
        for(int i = 0; i<tamanhovetoedesc; i++){
            sqlinsert = "";
        
            sqlinsert = "INSERT INTO masterprint.perfil (Descricao, Perfil) values ('"+vetDesc[i]+"', '"+jTextFieldDESCPERFIL.getText().toUpperCase()+"');";    
                  
             try {
                 System.out.print(sqlinsert);

                 [color=red]conexao.statement.executeUpdate(sqlinsert);[/color]

                 JOptionPane.showConfirmDialog(null, "Perfil criado");
                 jTextFieldDESCPERFIL.setText("");
             } catch (SQLException ex) {
                ex.printStackTrace();
             }
            }
          
    
    }else{
    jTextFieldDESCPERFIL.setText("");
    }
}

aqui vai o stacktrace

init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\UserName\Meus documentos\NetBeansProjects\Sistema_MASTERPRINT\build\classes
compile:
run:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at utilitarios.CriarPerfil.CONFIRMAActionPerformed(CriarPerfil.java:144)
2INSERT INTO masterprint.perfil (Descricao, Perfil) values ('Abertura do Caixa', 'MOTOBOY');
        at utilitarios.CriarPerfil.access$100(CriarPerfil.java:9)
        at utilitarios.CriarPerfil$2.actionPerformed(CriarPerfil.java:58)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6134)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5899)
        at java.awt.Container.processEvent(Container.java:2023)
        at java.awt.Component.dispatchEventImpl(Component.java:4501)
        at java.awt.Container.dispatchEventImpl(Container.java:2081)
        at java.awt.Component.dispatchEvent(Component.java:4331)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
        at java.awt.Container.dispatchEventImpl(Container.java:2067)
        at java.awt.Window.dispatchEventImpl(Window.java:2458)
        at java.awt.Component.dispatchEvent(Component.java:4331)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 24 segundos)
progJava

Vlw tou testando…

fabio_kaspar

Olá pessoal, estou com um problema ao inserir dados no Mysql usando ActionListener. Quando eu compilo o programa ele roda normalmente mas quando eu clico no botão para ele
inserir os dados dos campos do formulário no Mysql ele gera o seguinte erro:

Exception in thread AWT-EventQueue-0 java.lang.NumberFormatException: For input string: “”

at java.lang.NumberFormatException.forInputString(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at cadastro$BtnCadClActionListener.actionPerformed(cadastro.java:335)

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)

Segue abaixo o meu código

public class cadastro extends  JFrame {

    static Connection conn =null;
    String nome;
    int rg;
    int cpf;
    int tel;
    String end;
	 static ResultSet rs =null;
    static String status = null;
	private JPanel pnlCentro;
	private JPanel pnlNorte;
	private JPanel pnlSul;
	private JButton btnAdicionar;
	private JButton btnAlterar;
	private JButton btnCadProd;
	private static JButton  btnCadCl;
	private JButton btnExcluir;
	private JButton btnAnt;
	private JButton btnProx;
	private JButton btnAvanc;
	private JButton btnCancel;
	private JLabel lblCodProd;
	private JLabel lblDescProd;
	private JLabel lblTypProd;
	private JLabel lblPrcProd;
	private JLabel lblNmCl;
	private JLabel lblRgCl;
	private JLabel lblCpfCl;
	private JLabel lblTelCl;
	private JLabel lblEndCl;
	private JTextField txtCodProd;
	private JTextField txtDescProd;
	private JTextField txtTypProd;
	private JTextField txtPrcProd;
	private static JTextField txtNmCl;
	private static JTextField txtRgCl;
	private static JTextField txtCpfCl;
	private static JTextField txtTelCl;
	private static JTextField txtEndCl;
    private JLabel lblRot1;
    private JLabel lblRot2;
	private Object request;



public static void main (String args[]){
	cadastro frame = new cadastro ();
	frame.setVisible(true);


}



public cadastro(){
	super();
	setBounds(500,500,728,500);
	setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
	try {
	jbInit();
    teste();
 
   } catch (Throwable e) {
	JOptionPane.showMessageDialog(null, e.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE);
  }
}
        	


private void jbInit() throws Exception{
	pnlCentro = new JPanel();
	pnlNorte = new JPanel();
	pnlSul = new JPanel();
	btnAlterar = new JButton();
	btnCadProd =new JButton();
	btnCadCl = new JButton();
	btnExcluir =new JButton();
	btnAdicionar = new JButton();
	btnAnt = new JButton();
	btnProx = new JButton();
	btnCancel = new JButton();
	btnAvanc = new JButton();
	lblCodProd = new JLabel();
	lblDescProd = new JLabel();
	lblTypProd = new JLabel();
	lblPrcProd = new JLabel();
	lblNmCl= new JLabel();
	lblRgCl= new JLabel();
	lblCpfCl= new JLabel();
	lblTelCl= new JLabel();
	lblEndCl = new JLabel();
	txtCodProd = new JTextField();
	txtDescProd = new JTextField();
	txtTypProd = new JTextField();
	txtPrcProd = new JTextField();
	txtNmCl = new JTextField();
	txtRgCl = new JTextField();
	txtCpfCl = new JTextField();
	txtTelCl = new JTextField();
	txtEndCl = new JTextField();
	lblRot1 = new JLabel();
	lblRot2 = new JLabel();

	
	getContentPane().setLayout (new BorderLayout());
	setTitle("Assistente 5 estrelas");

	getContentPane().add(pnlCentro, BorderLayout.CENTER);
	pnlCentro.setLayout(null);
	//produto
	pnlCentro.add(lblCodProd);
	lblCodProd.setText("Código");
	lblCodProd.setBounds(20, 50, 66, 16);

	pnlCentro.add(lblDescProd);
	lblDescProd.setText("Descrição");
	lblDescProd.setBounds(20, 100, 66, 16);
	

	pnlCentro.add(lblTypProd);
	lblTypProd.setText("Tipo");
	lblTypProd.setBounds(20, 150, 66, 16);
	

	pnlCentro.add(lblPrcProd);
	lblPrcProd.setText("Preço");
	lblPrcProd.setBounds(20, 200, 66, 16);
	
	pnlCentro.add(txtCodProd);
	txtCodProd.setBounds(80, 50, 200, 20);
	txtCodProd.setText("");
	
	pnlCentro.add(txtDescProd);
	txtDescProd.setBounds(80, 100,200, 20);
	txtDescProd.setText("");
	
	pnlCentro.add(txtTypProd);
	txtTypProd.setBounds(80, 150, 200, 20);
	txtTypProd.setText("");
	
	pnlCentro.add(txtPrcProd);
	txtPrcProd.setBounds(80, 200, 200, 20);
	txtPrcProd.setText("");
    //cliente
	pnlCentro.add(lblNmCl);
	lblNmCl.setText("Nome");
	lblNmCl.setBounds(360, 50, 66, 16);
	

	pnlCentro.add(lblRgCl);
	lblRgCl.setText("RG");
	lblRgCl.setBounds(360, 100, 66, 16);
	

	pnlCentro.add(lblCpfCl);
	lblCpfCl.setText("CPF ");
	lblCpfCl.setBounds(360, 150, 66, 16);
	
	

	pnlCentro.add(lblTelCl);
	lblTelCl.setText("Telefone");
	lblTelCl.setBounds(360, 200, 66, 16);
	
	
    pnlCentro.add(lblEndCl);
	lblEndCl.setText("Endereço");
	lblEndCl.setBounds(360, 250, 66, 16);
	
	
	
	pnlCentro.add(txtNmCl);
	txtNmCl.setBounds(400, 50, 200, 20);
	txtNmCl.setText("");


	
	pnlCentro.add(txtRgCl);
	txtRgCl.setBounds(400, 100, 200, 20);
	txtRgCl.setText("");


	
	pnlCentro.add(txtCpfCl);
	txtCpfCl.setBounds(400, 150, 200, 20);
	txtCpfCl.setText("");


	
	
	pnlCentro.add(txtTelCl);
	txtTelCl.setBounds(430, 200, 200, 20);
	txtTelCl.setText("");



	
	pnlCentro.add(txtEndCl);
	txtEndCl.setBounds(430, 250, 200, 20);
	txtEndCl.setText("");


	
	
	getContentPane().add(pnlNorte, BorderLayout.NORTH);
	pnlNorte.setPreferredSize(new Dimension(0, 50));

	
	pnlNorte.add(btnExcluir);
	btnExcluir.setText("excluir");
	btnExcluir.setBounds(241, 10, 115, 25);
	btnExcluir.setIcon (new ImageIcon ("lixeira.png"));

	
	pnlNorte.add(btnAnt);
	btnAnt.setBounds(241, 10, 115, 25);
	btnAnt.setIcon (new ImageIcon ("ant1.png"));

	
	pnlNorte.add(btnProx);
	btnProx.setBounds(241, 10, 115, 25);
	btnProx.setIcon(new ImageIcon("prox.png"));

	
	pnlNorte.add(btnCancel);
	btnCancel.setBounds(241, 10, 115, 25);
	btnCancel.setIcon(new ImageIcon("cancel.png"));
	btnCancel.setText("cancelar");


	
	pnlNorte.add(btnAlterar);
	btnAlterar.setBounds(241, 10, 115, 25);
	btnAlterar.setText("Alterar");


	pnlNorte.add(btnAdicionar);
	btnAdicionar.setBounds(241, 10, 115, 25);
	btnAdicionar.setText("Adicionar");

	
	getContentPane().add(pnlSul, BorderLayout.SOUTH);
	pnlSul.setPreferredSize(new Dimension(400, 50));
	
	
	pnlSul.add(btnCadProd);
	btnCadProd.setText("cadastrar produto");
	btnCadProd.setBounds(20, 50, 115, 25);

	pnlSul.add(btnCadCl);
	btnCadCl.setText("cadastrar cliente");
	btnCadCl.setBounds(5, 30, 115, 25);
	btnCadCl.addActionListener(new BtnCadClActionListener());

	pnlSul.add(btnAvanc);
	btnAvanc.setText("avançar");
	btnAvanc.setBounds(40, 30, 115, 25);


	}

public static Connection getConnection(){
    // base de dados é "javabd2"
    String url = "jdbc:mysql://127.0.0.1/javabd2";
    String usuario = "root";
    String senha = null;

    try{
      Class.forName("com.mysql.jdbc.Driver");
      Connection conn = DriverManager.getConnection(url, usuario, senha);
      java.sql.Statement select = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); 
      ResultSet rs = select.executeQuery("SELECT * FROM cliente"); 
      if (rs == null){
    	  System.out.println("rs está nulo");
      }else{
    	  System.out.println("rs está cheio"); 
      }
      		if (rs.next()){
      	System.out.println(" há dados");
      	
      } else{
      	System.out.println("não há dados");
      }
      	return conn;
    }
    
    catch(SQLException ex){
      System.out.println("SQLException: " + ex.getMessage());
      System.out.println("SQLState: " + ex.getSQLState());
      System.out.println("VendorError: " + ex.getErrorCode());
      return null;
    }
    catch(Exception e){
      System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
      return null; 
    }
  }

     public void teste(){
	cadastro.getConnection();
	System.out.println("conexão aberta");
  }
     
     
     private class BtnCadClActionListener implements ActionListener {
    		public void actionPerformed(ActionEvent e){ 
    		try {
    			String nome = txtNmCl.getText();
    			String end = txtEndCl.getText();
    			int rg =Integer.parseInt(txtNmCl.getText());
    			int cpf =Integer.parseInt(txtCpfCl.getText());
    			int tel = Integer.parseInt(txtTelCl.getText());
    			java.sql.Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); 
             String query = "INSERT INTO cliente (cl_nome, cl_rg, cl_cpf, cl_tel, cl_end) " +
    	"VALUES('"+nome+"','"+rg+"','"+cpf+"','"+tel+"','"+end+"')";
			 
			int vs = stmt.executeUpdate(query);
		    
			 
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
			return;
			
		  } 

	 
            
     }

Se alguém puder me dar uma ajuda ficarei imensamente grato.
Aguardo retorno

ViniGodoy

Tópico ressuscitado e de dúvida duplicada.

Criado 2 de janeiro de 2007
Ultima resposta 18 de jul. de 2010
Respostas 10
Participantes 8