J'ai créé une classe dont le nom est Manager et j'ai un Frame dont le nom est BirthList et ce cadre a une table.Je travaille avec MySQL et j'ai entré des données dans le "birthtable" dans MySQL.and je veux ajouter ces données de MySQL dans la table qui est dans mon cadre. CONSEIL: birthList est une liste d'objets Naissance. mais je vais trouver cette exception pourquoi? S'il vous plaît aidez-moi :(Pourquoi j'ai NullPointerException ici?
classe Manager:
public Manager class{
Logger logger = Logger.getLogger(this.getClass().getName());
private static Connection conn = DBManager.getConnection();
private static Admin admin;
public static void addToBirthListFromMySQL() throws SQLException {
try{
Statement stmt = conn.createStatement();
ResultSet rs= stmt.executeQuery("SELECT * FROM birthtable");
Birth list1;
while (rs.next()) {
String s1 = rs.getString(2);
if (rs.wasNull()) {
s1 = null;
}
String s2 = rs.getString(3);
if (rs.wasNull()) {
s2 = null;
}
String s3 = rs.getString(4);
if (rs.wasNull()) {
s3 = null;
}
String s4 = rs.getString(5);
if (rs.wasNull()) {
s4 = null;
}
String s5 = rs.getString(6);
if (rs.wasNull()) {
s5 = null;
}
String s6 = rs.getString(7);
if (rs.wasNull()) {
s6 = null;
}
list1 = new Birth(s1, s2, s3, s4, s5, s6);
admin.birthList.add(list1);
}
}
catch(SQLException e){
}
}
Mon Cadre:
public class BirthList extends javax.swing.JFrame {
private Admin admin;
/** Creates new form BirthList */
public BirthList(Admin admin) {
initComponents();
this.admin = admin;
try {
Manager.addToBirthListFromMySQL();
} catch (SQLException ex) {
Logger.getLogger(BirthList.class.getName()).log(Level.SEVERE, null, ex);
}
fillTable();
}
public void fillTable() {
String[] columNames = {"name", "family", "father's name", "mother's name", "date of birth", "place of birth"};
List<Birth> birth = admin.getBirthList();
Object[][] data = new Object[birth.size()][columNames.length];
for (int i = 0; i < data.length; i++) {
Birth birth1 = birth.get(i);
data[i][0] = birth1.getName();
data[i][1] = birth1.getFamily();
data[i][2] = birth1.getFatherName();
data[i][3] = birth1.getMotherName();
data[i][4] = birth1.getDateOfBirth();
data[i][5] = birth1.getPlaceOfBirth();
}
DefaultTableModel model = new DefaultTableModel(data, columNames);
jTable1.setModel(model);
}
public boolean isCellEditable(int row, int col) {
return true;
}
}
stacktrace: Exception dans le thread "AWT-EventQueue-0" java.lang.NullPointerException à database.Manager.addToBirthListFromMySQL (Manager.java:272) à AdminGUI.BirthList. (BirthList.java:35) à AdminGUI.BirthFrame.newButton1ActionPerformed (Birth Frame.java:127) à AdminGUI.BirthFrame.access 000 $ (BirthFrame.java:21) à AdminGUI.BirthFrame $ 1.actionPerformed (BirthFrame.java:58) à javax.swing.AbstractButton.fireActionPerformed (AbstractButton.java: 1995) à javax.swing.AbstractButton $ Handler.actionPerformed (AbstractButton.java:2318) à javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:387) à javax.swing.DefaultButtonModel.setPressed (DefaultButtonModel.java: 242) à javax.swing.plaf.basic.BasicButtonListener.mouseReleased (BasicButtonListener.java:236) à java.awt.Component.processMouseEvent (Component.java:6038) à javax.swing.JComponent.processMouseEvent (JComponent. java: 3265) à java.awt.Component.processEvent (Component.java:5803) à java.awt.Container.processEvent (Container.java:2058) à java.awt.Component.dispatchEventImpl (Component.java:4410) à java .awt.Container.dispatchEventImpl (Container.java:2116) à java.awt.Component.dispatchEvent (Component.java:4240) à java.awt.LightweightDispatcher.retargetMouseEvent (Container.java:4322) à java.awt .LightweightDispatcher.processMouseEvent (Container.java:3986) à java.awt.LightweightDispatcher.dispatchEvent (Container.java:3916) à java.awt.Container.dispatchEventImpl (Container.java:2102) à java.awt.Window .dispatchEventImpl (Window.java:2429) at java.awt.Component.dispatchEvent (Component.java:4240) à java.awt.EventQueue.dispatchEvent (EventQueue.java:599) à java.awt.EventDispatchThread.pumpOneEventForFilters (EventDispatchThread.java:273) à java.awt.EventDispatchThread.pumpEventsForFilter (EventDispatchThread. java: 183) à java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:173) à java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:168) à java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java: 160) à java.awt.EventDispatchThread.run (EventDispatchThread.java:121)
ligne 272 est la suivante: admin.birthList.add (list1);
** debugger aussi mon projet et le résultat a été:
debug: écoute sur javadebug programme utilisateur en cours Debugger arrêté sur le code source uncompilable.
* imprimer aussi mon admin objet avec System.out.println (admin) et le résultat a été:
Cela aiderait si nous connaissions la ligne 'Manager.java: 272'. –
Ash a raison. ps Et aussi il semble que vous n'avez pas besoin de la variable list1. Vous pouvez simplement faire ceci: admin.birthList.add (nouvelle naissance (s1, s2, s3, s4, s5, s6)); –
Dans ce cas, il serait utile si vous pouviez dire quelle est la ligne 272 dans la classe Manager. En aparté, le bloc try/catch dans addToBirthListFromMySQL() va masquer/rejeter toutes les SQLException lancées –