Visualizzazione dei risultati da 1 a 6 su 6

Discussione: NullPointerException

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    163

    NullPointerException

    ciao!
    errore:

    Exception in thread "main" java.lang.NullPointerException
    at java.awt.Container.addImpl(Container.java:1045)
    at javax.swing.JToolBar.addImpl(JToolBar.java:561)
    at java.awt.Container.add(Container.java:365)
    at src.myApp.<init>(myApp.java:39)
    at src.myApp.main(myApp.java:90)

    codice:
    Codice PHP:
     package src;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.*;
    import java.sql.*;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.JTable;
    import java.util.Vector;

    class 
    myApp extends JFrame implements ActionListener{

    private 
    Button ok;
    private 
    Button annulla;
    private 
    JPanel northPanel;
    private 
    JTable mainTable;
    private 
    JPanel statusBar;
    private 
    JProgressBar progressBar;
    private 
    JMenuBar menuBar;
    private 
    JMenu fileMenu;
    private 
    JMenuItem nuovoFile;
    private 
    BorderLayout borderLayout;
    private 
    JToolBar toolBar;


    public 
    myApp(){
        
        
    borderLayout = new BorderLayout();
        
    this.setLayout(borderLayout);    
            
            
    northPanel = new JPanel(new GridLayout(2,1));

            
    menuBar = new JMenuBar();
                
    menuBar.add(fileMenu = new JMenu("File"));
                    
    fileMenu.add(nuovoFile = new JMenuItem("Nuovo"));

            
    toolBar = new JToolBar("toolBar",JToolBar.HORIZONTAL);
                
    toolBar.add(ok);
                
    toolBar.add(annulla);

          
    ok = new Button("Ok");
        
    ok.addActionListener(this);
        
        
    annulla = new Button("Annulla");
        
    annulla.addActionListener(this);

            
    statusBar = new JPanel(new GridLayout(1,1));

            
    northPanel.add(menuBar);
            
    northPanel.add(toolBar);




            
    this.add(northPanel,BorderLayout.NORTH);
        
    this.add(mainTable,BorderLayout.CENTER);
        
    this.add(statusBar,BorderLayout.SOUTH);
        
    this.setTitle("mia finestra");
        
    this.setSize(900,600);
        
    this.setVisible(true);

        
    this.addWindowListener(new WindowAdapter(){
            public 
    void windowClosing(WindowEvent e){
                
    dispose();
            }
            public 
    void windowIconified(WindowEvent e){
                
    setTitle("Ridotto a Icona");
            }
            public 
    void windowDeiconified(WindowEvent e){
                
    setTitle("mia finestra");
            }
            } ) ;
        
    }



    public 
    void actionPerformed(ActionEvent e){

    System.out.println(e);
    }

    public static 
    void main(String arg[])
    {

        
    myApp launch = new myApp();

    }


    soluzione?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: NullPointerException

    Originariamente inviato da nephilim89
    Codice PHP:
    toolBar.add(ok);

    ok = new Button("Ok"); 
    soluzione?
    La add() è stata fatta prima di aver assegnato qualcosa a 'ok'. Tutto qui ...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    163
    ho modificato cosi:

    Codice PHP:
    ok = new Button("Ok");
        
    ok.addActionListener(this);
        
        
    annulla = new Button("Annulla");
        
    annulla.addActionListener(this);

            
    toolBar = new JToolBar("toolBar",JToolBar.HORIZONTAL);
                
    toolBar.add(ok);
                
    toolBar.add(annulla); 
    ma l'errore resta!

    Exception in thread "main" java.lang.NullPointerException
    at java.awt.Container.addImpl(Container.java:1041)
    at java.awt.Container.add(Container.java:959)
    at javax.swing.JFrame.addImpl(JFrame.java:540)
    at java.awt.Container.add(Container.java:927)
    at src.myApp.<init>(myApp.java:60)
    at src.myApp.main(myApp.java:90)

  4. #4
    manca la new per mainTable ?
    Codice PHP:
    this.add(mainTable,BorderLayout.CENTER); 

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    163
    no la parte della table l'ho tolta perchè era lunga ed ero sicuro al 100% che fosse giusta perchè con o senza da errore uguale


    Codice PHP:
     try{
                
    String driver "org.apache.derby.jdbc.EmbeddedDriver";
                Class.
    forName(driver).newInstance();

                
    String protocol "jdbc:derby:zmovies;";
                
    Connection c DriverManager.getConnectionprotocol );

                
    Statement exe c.createStatement();
                
    ResultSet rs exe.executeQuery("SELECT * FROM movies;");
                
    ResultSetMetaData m rs.getMetaData();

                
    DefaultTableModel model = new DefaultTableModel();
                
    JTable jTable1 = new JTable(model);

                
    // Aggiungi le colonne "manualmente"
                
    model.addColumn("ID");
                
    model.addColumn("Titolo");
                
    model.addColumn("Genere");
                
    model.addColumn("Anno");
                
    model.addColumn("Regista");
                
    model.addColumn("Attori");
                
    model.addColumn("Copertina");
                
    model.addColumn("Conservato in");

                
    // Aggiungi le righe leggendo dal db;
                
    while(rs.next()) {
                  
    Vector<Stringrow = new Vector<String>();
                  
    row.addElement(rs.getString("ID"));
                  
    row.addElement(rs.getString("Title"));
                  
    row.addElement(rs.getString("Genre"));
                  
    row.addElement(rs.getString("Release"));
                  
    row.addElement(rs.getString("Director"));
                  
    row.addElement(rs.getString("Actor"));
                  
    row.addElement(rs.getString("Cover"));
                  
    row.addElement(rs.getString("Stored"));

                  
    model.addRow(row);
                }

                
    rs.close();
                
    exe.close();
                
    c.close();
            }
            catch (
    ClassNotFoundException e){ System.out.println(e); }
            catch (
    SQLException e){ System.out.println(e); }
            catch (
    InstantiationException e){ System.out.println(e); }
            catch (
    IllegalAccessException e){ System.out.println(e); } 

  6. #6
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Ha ragione google01: l'errore è che non inizializzi mainTable.
    Ma se poi hai modificato il codice e ricevi un errore diverso da quello che hai postato noi non abbiamo modo di saperlo...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.