Probleminha, preciso de ajuda!

Minha classe grafica, no codigo o botão inserir

    private void jbInserirActionPerformed(java.awt.event.ActionEvent evt) {                                          
       banco.InserirDados("INSERT INTO filmes(Codigo, Nome, Quantidade)VALUES(null,null,null)");
        
    }   

minha classe do banco

package locprojectbasico;                                                                                                               
import java.sql.*;

public class Banco{
    
    private  String url = "jdbc:mysql://localhost:3306/teste";
    private  String user = "root";
    private  String password = "150486";
    private static Connection  con = null;
   
    
    public void Banco(){
        try{
        Class.forName("org.gjt.mm.mysql.Driver");
        con = DriverManager.getConnection(url,user,password);
        }catch(Exception e){
            e.printStackTrace();}
         
      }
    
   
    public static void InserirDados(String inserir){  
        try{
        Statement stmt = con.createStatement();
        stmt.executeUpdate(inserir);
        stmt.close();
        }catch(SQLException e){
            e.printStackTrace();}
        }
    

    public static void BuscarDados(String buscar){
        try{
        Statement stmt = con.createStatement();
        ResultSet res = stmt.executeQuery(buscar);
        res.close();
        }catch(SQLException e){
            e.printStackTrace();} 
       }
}

Então, quando executo, ou melhor quando clico no botão inserir, da um erro e não insere no banco, não passo nenhum dados nos campos porque ja to passando os dados ali direto no insert… a classe banco funciona e esta inserindo normalmente, testei ele sozinha em um novo projeto…

segue o erro:


Exception occurred during event dispatching:
java.lang.NullPointerException
        at locprojectbasico.banco.InserirDados(banco.java:24)
        at locprojectbasico.DialogFilmesForm.jbInserirActionPerformed(DialogFilmesForm.java:168)
        at locprojectbasico.DialogFilmesForm.access$200(DialogFilmesForm.java:15)
        at locprojectbasico.DialogFilmesForm$3.actionPerformed(DialogFilmesForm.java:131)
        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:234)
        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:1774)
        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.pumpEventsForHierarchy(EventDispatchThread.java:153)
        at java.awt.Dialog$1.run(Dialog.java:517)
        at java.awt.Dialog$2.run(Dialog.java:545)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Dialog.show(Dialog.java:543)
        at java.awt.Component.show(Component.java:1300)
        at java.awt.Component.setVisible(Component.java:1253)
        at locprojectbasico.MenuPrincipalForm.jmiFilmes1ActionPerformed(MenuPrincipalForm.java:158)
        at locprojectbasico.MenuPrincipalForm.access$200(MenuPrincipalForm.java:13)
        at locprojectbasico.MenuPrincipalForm$3.actionPerformed(MenuPrincipalForm.java:96)
        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.AbstractButton.doClick(AbstractButton.java:302)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
        at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
        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:1774)
        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)

é um erro na parte grafica , alguem pode me ajudar ?

Cara…primeiro…tenta se acostumar a programar nos padroes e coloca as tuas classes começando com letra maiuscula blz???

Segundo…pelo q eu entendi…tu criou a classe banco com os metodos de acesso ao banco estaticos para nao precisar instanciar a classe…mas a variavel q possui a conexao com o banco tah sendo instanciada no metodo banco…( axo q tu keria fazer um construtor ai…e pra isso vc precisa retirar o tipo de retorno do metodo).

Mas mesmo assim tah estranho…dessa forma vc vai precisar instanciar a classe pra possuir a conexao…tenta colocar esse procedimento dentro de um bloco estatico…axo q dessa forma vai funcionar…

Qualker coisa dah o tok…

Vlw!!!

[quote=“carlosss”]Cara…primeiro…tenta se acostumar a programar nos padroes e coloca as tuas classes começando com letra maiuscula blz???

Segundo…pelo q eu entendi…tu criou a classe banco com os metodos de acesso ao banco estaticos para nao precisar instanciar a classe…mas a variavel q possui a conexao com o banco tah sendo instanciada no metodo banco…( axo q tu keria fazer um construtor ai…e pra isso vc precisa retirar o tipo de retorno do metodo).

Mas mesmo assim tah estranho…dessa forma vc vai precisar instanciar a classe pra possuir a conexao…tenta colocar esse procedimento dentro de um bloco estatico…axo q dessa forma vai funcionar…

Qualker coisa dah o tok…

Vlw!!![/quote]

OK, vlw pela dica…

criei os metodos estaticos porque , me apresentava um erro quando chamado o metodo InserirDados, Um metodo não estático não pode ser referenciado num contexto Estatico…

sim eu estou estanciando a classe Banco para acesar o metodo InserirDados

package locprojectbasico;


import java.sql.*;
/**
 *
 * @author  Kremer
 */
public class DialogFilmesForm extends javax.swing.JDialog {
    
  
    /** Creates new form DialogFilmesForm */
    public DialogFilmesForm(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        setTitle("Cadastro De Filmes");
        setSize(380,180);
        setLocationRelativeTo(null);
        Banco conexao = new Banco();
     
    }

        

    
    /** 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.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
    private void initComponents() {
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jPanel1 = new javax.swing.JPanel();
        jlCodFilme = new javax.swing.JLabel();
        jlNomeFilme = new javax.swing.JLabel();
        jlQuantidade = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jPanel2 = new javax.swing.JPanel();
        tfCodigoFilme = new javax.swing.JTextField();
        tfNomeFilme = new javax.swing.JTextField();
        tfQuantidade = new javax.swing.JTextField();
        jComboBox1 = new javax.swing.JComboBox();
        jPanel3 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jPanel5 = new javax.swing.JPanel();
        jbInserir = new javax.swing.JButton();
        jbSair = new javax.swing.JButton();
        jPanel6 = new javax.swing.JPanel();

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        jPanel1.setLayout(new java.awt.GridLayout(4, 0, 1, 1));

        jlCodFilme.setText("  Codigo Filme : ");
        jPanel1.add(jlCodFilme);

        jlNomeFilme.setText("  Nome Filme  :");
        jPanel1.add(jlNomeFilme);

        jlQuantidade.setText("  Quantidade  :");
        jPanel1.add(jlQuantidade);

        jLabel2.setText("  Tipo :");
        jPanel1.add(jLabel2);

        getContentPane().add(jPanel1, java.awt.BorderLayout.WEST);

        jPanel2.setLayout(new java.awt.GridLayout(4, 0, 0, 3));

        tfCodigoFilme.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tfCodigoFilmeActionPerformed(evt);
            }
        });

        jPanel2.add(tfCodigoFilme);

        jPanel2.add(tfNomeFilme);

        jPanel2.add(tfQuantidade);

        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "DVD", "VHS" }));
        jComboBox1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBox1ActionPerformed(evt);
            }
        });

        jPanel2.add(jComboBox1);

        getContentPane().add(jPanel2, java.awt.BorderLayout.CENTER);

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 12));
        jLabel1.setText("CADASTRO FILMES");
        jPanel3.add(jLabel1);

        getContentPane().add(jPanel3, java.awt.BorderLayout.NORTH);

        jPanel5.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 1, 5));

        jbInserir.setText("Inserir");
        jbInserir.setPreferredSize(new java.awt.Dimension(75, 20));
        jbInserir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbInserirActionPerformed(evt);
            }
        });

        jPanel5.add(jbInserir);

        jbSair.setMnemonic('S');
        jbSair.setText("Sair");
        jbSair.setPreferredSize(new java.awt.Dimension(75, 20));
        jbSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbSairActionPerformed(evt);
            }
        });

        jPanel5.add(jbSair);

        getContentPane().add(jPanel5, java.awt.BorderLayout.SOUTH);

        getContentPane().add(jPanel6, java.awt.BorderLayout.EAST);

        pack();
    }// </editor-fold>                        

    private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
// TODO add your handling code here:
    }                                          

    private void tfCodigoFilmeActionPerformed(java.awt.event.ActionEvent evt) {                                              

    }                                             

    private void jbSairActionPerformed(java.awt.event.ActionEvent evt) {                                       
    dispose();
    }                                      

    private void jbInserirActionPerformed(java.awt.event.ActionEvent evt) {                                          
       
     Banco.InserirDados("INSERT INTO filmes(Codigo, Nome, Quantidade)VALUES(null,null,null)");     //<<<<<<<<<<<<<<<<AQUI
        
    }                                         
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new DialogFilmesForm(new javax.swing.JFrame(), true).setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify                     
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.JButton jbInserir;
    private javax.swing.JButton jbSair;
    private javax.swing.JLabel jlCodFilme;
    private javax.swing.JLabel jlNomeFilme;
    private javax.swing.JLabel jlQuantidade;
    private javax.swing.JTextField tfCodigoFilme;
    private javax.swing.JTextField tfNomeFilme;
    private javax.swing.JTextField tfQuantidade;
    // End of variables declaration                   

}



Vai devagar, sou bem novinho em java , comecei fa pouco tempo, provavelmente devo estar cometendo erro básico.

Cara…mas a meu ver ainda tem um problema…
Vc tem esse metodo…

[code]public void Banco(){
try{
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection(url,user,password);
}catch(Exception e){
e.printStackTrace();}

  }[/code]

Eh nele onde a sua conexao tah sendo instanciada…mas esse metodo nao eh chamado em parte alguma…eu axo q vc keria q isso fosse um construtor…mas para isso vc deve retirar o tipo de retorno do metodo, deixando ele assim:

[code]public Banco(){
try{
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection(url,user,password);
}catch(Exception e){
e.printStackTrace();}

  }[/code]

Dessa forma sim vc iria instanciar a conexao qd a classe Banco fosse instanciada…ve ai se vai dar certo agora…qualker coisa da o toke…

Vlw!!
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Ratinho[/color][/size] :joia:

Otra coisa…comeh q eu coloco o codigo formatado aki no forum ein??
ainda nao descobri…:stuck_out_tongue:

Vlw!!!

[quote=“carlosss”]Otra coisa…comeh q eu coloco o codigo formatado aki no forum ein??
ainda nao descobri…:stuck_out_tongue:

Vlw!!![/quote]

é so usar o CODE… mesmo modo que usa o quote!

carlosss, obrigado funcionou como eu queria, estanciei o metodo Banco dentro do InserirDados e funcionou !!!

erro básico, aff da ateh raiva quando a gente ve !