NullPointerException na compilação

Olha soh, galera ta dando um erro de NullpointerException mesmo eu tratando ele, usando uma entrada velha, nao consigo achar onde esta um erro se alguem puder me ajudar agradeco ta ai meu codigo.

[code]/*

  • TelaCarros.java
  • Created on 18 de Outubro de 2007, 21:28
    */

package visao;

import javax.swing.JOptionPane;
import javax.swing.JPanel;
import java.util.HashMap;
import modelo.Carro;

/**
*

  • @author Nuno
    /
    public class TelaCarros extends javax.swing.JFrame {
    HashMap<String, Carro> carros;
    /
    * Creates new form TelaCarros */
    public TelaCarros() {
    initComponents();
    HashMap<String,Carro> carros = new HashMap<String,Carro>();
    }

    /** This method is called from within the constructor to

    • initialize the form.

    • WARNING: Do NOT modify this code. The content of this method is

    • always regenerated by the Form Editor.
      */
      //
      private void initComponents() {
      jLabel1 = new javax.swing.JLabel();
      jSeparator1 = new javax.swing.JSeparator();
      txtPlaca = new javax.swing.JTextField();
      txtAno = new javax.swing.JTextField();
      txtModelo = new javax.swing.JTextField();
      txtCor = new javax.swing.JTextField();
      jLabel2 = new javax.swing.JLabel();
      jLabel3 = new javax.swing.JLabel();
      jLabel4 = new javax.swing.JLabel();
      jLabel5 = new javax.swing.JLabel();
      jButton1 = new javax.swing.JButton();

      setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
      jLabel1.setFont(new java.awt.Font(“Tahoma”, 1, 12));
      jLabel1.setText(“Aluguel De Carros”);

      jSeparator1.setOrientation(javax.swing.SwingConstants.VERTICAL);

      jLabel2.setFont(new java.awt.Font(“Tahoma”, 1, 11));
      jLabel2.setText(“Placa”);

      jLabel3.setFont(new java.awt.Font(“Tahoma”, 1, 11));
      jLabel3.setText(“Ano”);

      jLabel4.setFont(new java.awt.Font(“Tahoma”, 1, 11));
      jLabel4.setText(“Modelo”);

      jLabel5.setFont(new java.awt.Font(“Tahoma”, 1, 11));
      jLabel5.setText(“Cor”);

      jButton1.setText(“Cadastrar”);
      jButton1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      jButton1ActionPerformed(evt);
      }
      });

      org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
      getContentPane().setLayout(layout);
      layout.setHorizontalGroup(
      layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
      .add(layout.createSequentialGroup()
      .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
      .add(layout.createSequentialGroup()
      .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
      .add(layout.createSequentialGroup()
      .add(42, 42, 42)
      .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
      .add(layout.createSequentialGroup()
      .add(txtPlaca, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 77, Short.MAX_VALUE)
      .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED))
      .add(txtAno)
      .add(org.jdesktop.layout.GroupLayout.LEADING, txtModelo)
      .add(org.jdesktop.layout.GroupLayout.LEADING, txtCor)
      .add(org.jdesktop.layout.GroupLayout.LEADING, jButton1)))
      .add(layout.createSequentialGroup()
      .add(61, 61, 61)
      .add(jLabel4))
      .add(layout.createSequentialGroup()
      .add(69, 69, 69)
      .add(jLabel5))
      .add(layout.createSequentialGroup()
      .add(66, 66, 66)
      .add(jLabel2))
      .add(layout.createSequentialGroup()
      .add(71, 71, 71)
      .add(jLabel3)))
      .add(93, 93, 93)
      .add(jSeparator1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 18, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
      .add(layout.createSequentialGroup()
      .add(150, 150, 150)
      .add(jLabel1)))
      .addContainerGap(171, Short.MAX_VALUE))
      );
      layout.setVerticalGroup(
      layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
      .add(layout.createSequentialGroup()
      .add(jLabel1)
      .add(7, 7, 7)
      .add(jSeparator1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 278, Short.MAX_VALUE))
      .add(layout.createSequentialGroup()
      .add(41, 41, 41)
      .add(jLabel2)
      .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
      .add(txtPlaca, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
      .add(9, 9, 9)
      .add(jLabel3)
      .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
      .add(txtAno, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
      .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
      .add(jLabel4)
      .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
      .add(txtModelo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
      .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
      .add(jLabel5)
      .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
      .add(txtCor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
      .add(21, 21, 21)
      .add(jButton1)
      .addContainerGap(34, Short.MAX_VALUE))
      );
      pack();
      }//

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    // não deixa entrar com os campos em branco
    if(txtPlaca.getText().equals("")){
    JOptionPane.showMessageDialog(this, “Informe a placa”);
    txtPlaca.requestFocus();
    return;
    }

     // verifica se é uma placa válida
     String placa = txtPlaca.getText().toUpperCase();
     if(!placa.matches("[a-zA-z]{3}[0-9]{4}")){
         JOptionPane.showMessageDialog(this, "Use formato AAA9999");
         txtPlaca.requestFocus();
         return;
     }
     
     // verifica se já existe
     if(carros.containsKey(placa)){
         JOptionPane.showMessageDialog(this, "Placa já cadastrada.");
         txtPlaca.requestFocus();
         return;
     }
     
     // verifica campos em branco
     if(txtAno.getText().equals("")){
         JOptionPane.showMessageDialog(this, "Informe o ano");
         txtAno.requestFocus();
         return;
     }
     
     
     // tenta converter o ano em inteiro
     int ano;
     try {
         ano = Integer.parseInt(txtAno.getText());
     } catch (NumberFormatException ex) {
         JOptionPane.showMessageDialog(this, "Informe o ano");
         txtAno.requestFocus();
         return;
     }
       catch (NullPointerException ex)   {
        JOptionPane.showMessageDialog(this, "Informe o ano");
         txtAno.requestFocus();
         return;
     }
      if(txtCor.getText().equals("")){
         JOptionPane.showMessageDialog(this, "Informe a cor");
         txtCor.requestFocus();
         return;
     }
     
     // cria um carro novo
     String modelo = txtModelo.getText();
     String cor = txtCor.getText();
     Carro car = new Carro(placa, modelo, ano, cor);
     //guarda o carro no HASHMAP
     carros.put(placa, car);
     
     // avisa e limpa
     JOptionPane.showMessageDialog(this, "Carro cadastrado");
    
     txtPlaca.requestFocus();     
    

    }

    /**

    • @param args the command line arguments
      */
      public static void main(String args[]) {
      java.awt.EventQueue.invokeLater(new Runnable() {
      public void run() {
      new TelaCarros().setVisible(true);
      }
      });
      }

    // Declaração de variáveis - não modifique
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JTextField txtAno;
    private javax.swing.JTextField txtCor;
    private javax.swing.JTextField txtModelo;
    private javax.swing.JTextField txtPlaca;
    // Fim da declaração de variáveis

}[/code]

Será que você poderia colocar a stack trace pra eu ver

( Dá NullPointer na compilação? Não seria na execução? )

Anyway, passe todo o erro (o backtrace) como o Hugo mencionou, e a linha; aí até poderemos te ajudar =)

realemnte o erro eh na execucao , apos eu passar as entradas… o erro q da eh:

run: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at visao.TelaCarros.jButton1ActionPerformed(TelaCarros.java:156) at visao.TelaCarros.access$000(TelaCarros.java:20) at visao.TelaCarros$1.actionPerformed(TelaCarros.java:68) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:5488) at javax.swing.JComponent.processMouseEvent(JComponent.java:3126) at java.awt.Component.processEvent(Component.java:5253) at java.awt.Container.processEvent(Container.java:1966) at java.awt.Component.dispatchEventImpl(Component.java:3955) at java.awt.Container.dispatchEventImpl(Container.java:2024) at java.awt.Component.dispatchEvent(Component.java:3803) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822) at java.awt.Container.dispatchEventImpl(Container.java:2010) at java.awt.Window.dispatchEventImpl(Window.java:1778) at java.awt.Component.dispatchEvent(Component.java:3803) at java.awt.EventQueue.dispatchEvent(EventQueue.java:463) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Olá,

Na linha 25, em vez de dar um

HashMap<String,Carro> carros = new HashMap<String,Carro>();

tente dar um

carros = new HashMap<String,Carro>();

ou seja, você está definindo uma variavel local e setando o HashMap nela, deixando o campo carros da sua classe como null.

[]s,
Sami

Po, era bem esse errinho tolo ali mesmo, valeu cara, muito obrigado.