2017-04-04 1 views
0

Ich würde ein Java-Programm erstellen, wobei es eine JTable gibt (die Inhalte aus MySQL-Datenbank abruft und eine ihrer Spalten boolesch ist). Es gibt nur eine Schaltfläche, auf die beim Anklicken eine Meldung angezeigt wird, welche Zeilen überprüft wurden (die Zeilen, deren Kontrollkästchen aktiviert ist). Hier ist mein Code;Geprüfte Zeilen von Checkbox in Tabelle

public class NewJFrame extends javax.swing.JFrame { 

public NewJFrame() { 


    initComponents();   
    setTitle("Found Items"); 
    try { 
     String myDriver = "com.mysql.cj.jdbc.Driver"; 
     String myUrl = "jdbc:mysql://localhost:3306/lostfound"; 
     Class.forName(myDriver); 
     Connection c = DriverManager.getConnection(myUrl, "root", ""); 
     String sql = "SELECT * FROM found"; 
     Statement st = c.createStatement(); 

     // execute the query, and get a java resultset 
     ResultSet rs =st.executeQuery(sql); 
     int row =0; 
     while(rs.next()) 
     { 
      private static final int BOOLEAN_COLUMN = 4; 
     String name = rs.getString("name"); 
     String description = rs.getString("description"); 
     String location = rs.getString("location"); 
     meza.getModel().setValueAt(name, row, 0); 
     meza.getModel().setValueAt(description, row, 1); 
     meza.getModel().setValueAt(location, row, 2); 
     row++; 

     } 

    } 
    catch (SQLException e) 
    { 
     System.out.println(e.getMessage()); 
    } catch (ClassNotFoundException ex) { 
     Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    meza.show(); 
    claim.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent e) { 
      for(int i =0; i<meza.getRowCount(); i++) 
      { 
       Boolean checked = Boolean.valueOf(meza.getValueAt(i,3).toString()); 
       String col = meza.getValueAt(i, 1).toString(); 
       //DISPLAY POP UP 
       if(checked) 
      { 
       JOptionPane.showMessageDialog(null,col); 
      } 
      } 
     } 
    }); 

} 

Allerdings bekomme ich diesen Fehler.

Exception in thread "AWT-Eventqueue-0" java.lang.NullPointerException bei NewJFrame $ 1.actionPerformed (NewJFrame.java:65)

Bitte helfen

Antwort

1

nicht erklären Sie Ihre variablen mit in Ihrer Methode privat oder öffentlich:

private static final int BOOLEAN_COLUMN = 4; //this is forbidden 

Stattdessen verwenden:

int BOOLEAN_COLUMN = 4; 
Verwandte Themen