christosglx Δημοσ. 27 Φεβρουαρίου 2016 Δημοσ. 27 Φεβρουαρίου 2016 (επεξεργασμένο) Έχω δημιουργήσει μια βάση δεδομένων με κάποιους πίνακες Επίσης εχω κάνει μια φόρμα με ένα jtable ώστε να μου παρουσιάζει τις εγγραφές που έχει ο πίνακας όταν την ανοίγω. Αλλά όταν πάω να την κάνω run τη φόρμα παίρνω αυτο το λάθος: Έχω κάνει τα entity beans έχω δημιουργήσει query querylist και entitymanager και επίσης έχω κάνει και observable τη λίστα Επεξ/σία 28 Φεβρουαρίου 2016 από christosglx
groot Δημοσ. 27 Φεβρουαρίου 2016 Δημοσ. 27 Φεβρουαρίου 2016 Αδερφέ... κάνε c/p το μήνυμα λάθους. Δεν φαίνεται η εικόνα... 1
christosglx Δημοσ. 28 Φεβρουαρίου 2016 Μέλος Δημοσ. 28 Φεβρουαρίου 2016 Ολο αυτο είναι το λάθος που μου πετάει Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at handlersource.EmployeesFrame.initComponents(EmployeesFrame.java:36) at handlersource.EmployeesFrame.<init>(EmployeesFrame.java:23) at handlersource.EmployeesFrame$1.run(EmployeesFrame.java:147) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) BUILD SUCCESSFUL (total time: 2 seconds)
ZAKKWYLDE Δημοσ. 28 Φεβρουαρίου 2016 Δημοσ. 28 Φεβρουαρίου 2016 E ή δεν έχει γίνει initialize o EntityManager ακόμα, ή το isDesignTime σκάει. Γιατί fully qualified names; δεν βαριέσαι να γράφεις όλο τον σιδηρόδρομο; 1
christosglx Δημοσ. 28 Φεβρουαρίου 2016 Μέλος Δημοσ. 28 Φεβρουαρίου 2016 E ή δεν έχει γίνει initialize o EntityManager ακόμα, ή το isDesignTime σκάει. Γιατί fully qualified names; δεν βαριέσαι να γράφεις όλο τον σιδηρόδρομο; Και πώς μπορώ να το λύσω το πρόβλημα??? Είμαι νέος στη java απ'ότι κατάλαβες. Και επίσης τί εννοείς με το fully qualified names?
ZAKKWYLDE Δημοσ. 28 Φεβρουαρίου 2016 Δημοσ. 28 Φεβρουαρίου 2016 Το fully qualified όνομα είναι π.χ. new javax.swing.JButton(); new javax.swing.JFrame(); Το javax.swing είναι το όνομα του package στο οποίο βρίσκονται οι Κλάσεις, ενώ το JButton / JFrame είναι το όνομα των κλάσεων. Επειδή δεν έχει νόημα να γράφεις συνέχεια το όνομα των πακέτων, τα κάνεις import πάνω πάνω στη κλάση. π.χ. import javax.swing.*. Κανονικά τα IDE αν πεις new JButton() σου φτιάχνουν τα imports μόνα τους. Τώρα στο άλλο ερώτημα, πρέπει να δω όλο το κώδικα. Αλλιώς δεν μπορώ να δώ τι έχεις κάνει για να κάνεις initialize τον Entitymanager. 1
christosglx Δημοσ. 28 Φεβρουαρίου 2016 Μέλος Δημοσ. 28 Φεβρουαρίου 2016 Το fully qualified όνομα είναι π.χ. new javax.swing.JButton(); new javax.swing.JFrame(); Το javax.swing είναι το όνομα του package στο οποίο βρίσκονται οι Κλάσεις, ενώ το JButton / JFrame είναι το όνομα των κλάσεων. Επειδή δεν έχει νόημα να γράφεις συνέχεια το όνομα των πακέτων, τα κάνεις import πάνω πάνω στη κλάση. π.χ. import javax.swing.*. Κανονικά τα IDE αν πεις new JButton() σου φτιάχνουν τα imports μόνα τους. Τώρα στο άλλο ερώτημα, πρέπει να δω όλο το κώδικα. Αλλιώς δεν μπορώ να δώ τι έχεις κάνει για να κάνεις initialize τον Entitymanager. Αυτος ο κωδικας που αναφερεις ειναι generated απο το netbeans δεν καθομαι να τον γραψω ολο αυτο εγω Ο κωδικας της κλασης ειναι ο παρακατω: import javax.persistence.EntityManager; import mainPackage.DBManager; import model.Employee; /** * * @author George */ public class EmployeesFrame extends javax.swing.JFrame { /** * Creates new form EmployeesFrame */ public EmployeesFrame() { initComponents(); } /** * 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. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { bindingGroup = new org.jdesktop.beansbinding.BindingGroup(); query1 = java.beans.Beans.isDesignTime() ? null : em.createQuery("select e from Employee e"); list1 = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections.observableList(query1.getResultList()); jScrollPane1 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("ΔΙΑΧΕΙΡΗΣΗ ΕΡΓΑΖΟΜΕΝΩΝ"); setBackground(new java.awt.Color(255, 255, 255)); setBounds(new java.awt.Rectangle(200, 200, 640, 480)); setMinimumSize(new java.awt.Dimension(640, 480)); org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, list1, jTable1); org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${lname}")); columnBinding.setColumnName("ΕΠΩΝΥΜΟ"); columnBinding.setColumnClass(String.class); columnBinding.setEditable(false); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${fname}")); columnBinding.setColumnName("ΟΝΟΜΑ"); columnBinding.setColumnClass(String.class); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${email}")); columnBinding.setColumnName("E-mail"); columnBinding.setColumnClass(String.class); bindingGroup.addBinding(jTableBinding); jTableBinding.bind(); jScrollPane1.setViewportView(jTable1); jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/handlersource/images/add16.png"))); // NOI18N jButton1.setText("Εισαγωγή"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/handlersource/images/edit16.png"))); // NOI18N jButton2.setText("Επεξεργασία"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/handlersource/images/delete16.png"))); // NOI18N jButton3.setText("Διαγραφή"); jButton4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/handlersource/images/home22.png"))); // NOI18N jButton4.setText("Αρχική"); jButton4.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED)); jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4ActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 667, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jButton1) .addGap(18, 18, 18) .addComponent(jButton2) .addGap(18, 18, 18) .addComponent(jButton3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 371, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton1) .addComponent(jButton2) .addComponent(jButton3) .addComponent(jButton4)) .addGap(0, 16, Short.MAX_VALUE)) ); bindingGroup.bind(); setSize(new java.awt.Dimension(683, 471)); setLocationRelativeTo(null); }// </editor-fold> private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: EditingEmployeesData eed = new EditingEmployeesData(); eed.setVisible(true); this.setEnabled(true); } private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: EditingEmployeesData eed = new EditingEmployeesData(); eed.setVisible(true); this.setEnabled(true); } private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(EmployeesFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(EmployeesFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(EmployeesFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(EmployeesFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { @Override public void run() { new EmployeesFrame().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jTable1; private java.util.List<model.Employee> list1; private javax.persistence.Query query1; private org.jdesktop.beansbinding.BindingGroup bindingGroup; // End of variables declaration EntityManager em = DBManager.em;; } Και εχω δημιουργησει και ακομα μια κλαση για τον EntityManager οπου ο κωδικας ειναι ο παρακατω: import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; public class DBManager { public static EntityManager em; public static void connect() { EntityManagerFactory emf; emf = Persistence.createEntityManagerFactory("PLH24_2016_3ERG_WorkPermitHandler_DraftPU"); em = emf.createEntityManager(); } } Αυτος ο κωδικας που αναφερεις ειναι generated απο το netbeans δεν καθομαι να τον γραψω ολο αυτο εγω Ο κωδικας της κλασης ειναι ο παρακατω: import javax.persistence.EntityManager; import mainPackage.DBManager; import model.Employee; /** * * @author George */ public class EmployeesFrame extends javax.swing.JFrame { /** * Creates new form EmployeesFrame */ public EmployeesFrame() { initComponents(); } /** * 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. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { bindingGroup = new org.jdesktop.beansbinding.BindingGroup(); query1 = java.beans.Beans.isDesignTime() ? null : em.createQuery("select e from Employee e"); list1 = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections.observableList(query1.getResultList()); jScrollPane1 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("ΔΙΑΧΕΙΡΗΣΗ ΕΡΓΑΖΟΜΕΝΩΝ"); setBackground(new java.awt.Color(255, 255, 255)); setBounds(new java.awt.Rectangle(200, 200, 640, 480)); setMinimumSize(new java.awt.Dimension(640, 480)); org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, list1, jTable1); org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${lname}")); columnBinding.setColumnName("ΕΠΩΝΥΜΟ"); columnBinding.setColumnClass(String.class); columnBinding.setEditable(false); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${fname}")); columnBinding.setColumnName("ΟΝΟΜΑ"); columnBinding.setColumnClass(String.class); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${email}")); columnBinding.setColumnName("E-mail"); columnBinding.setColumnClass(String.class); bindingGroup.addBinding(jTableBinding); jTableBinding.bind(); jScrollPane1.setViewportView(jTable1); jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/handlersource/images/add16.png"))); // NOI18N jButton1.setText("Εισαγωγή"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/handlersource/images/edit16.png"))); // NOI18N jButton2.setText("Επεξεργασία"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/handlersource/images/delete16.png"))); // NOI18N jButton3.setText("Διαγραφή"); jButton4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/handlersource/images/home22.png"))); // NOI18N jButton4.setText("Αρχική"); jButton4.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED)); jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4ActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 667, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jButton1) .addGap(18, 18, 18) .addComponent(jButton2) .addGap(18, 18, 18) .addComponent(jButton3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 371, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton1) .addComponent(jButton2) .addComponent(jButton3) .addComponent(jButton4)) .addGap(0, 16, Short.MAX_VALUE)) ); bindingGroup.bind(); setSize(new java.awt.Dimension(683, 471)); setLocationRelativeTo(null); }// </editor-fold> private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: EditingEmployeesData eed = new EditingEmployeesData(); eed.setVisible(true); this.setEnabled(true); } private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: EditingEmployeesData eed = new EditingEmployeesData(); eed.setVisible(true); this.setEnabled(true); } private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(EmployeesFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(EmployeesFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(EmployeesFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(EmployeesFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { @Override public void run() { new EmployeesFrame().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jTable1; private java.util.List<model.Employee> list1; private javax.persistence.Query query1; private org.jdesktop.beansbinding.BindingGroup bindingGroup; // End of variables declaration EntityManager em = DBManager.em;; } Και εχω δημιουργησει και ακομα μια κλαση για τον EntityManager οπου ο κωδικας ειναι ο παρακατω: import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; public class DBManager { public static EntityManager em; public static void connect() { EntityManagerFactory emf; emf = Persistence.createEntityManagerFactory("PLH24_2016_3ERG_WorkPermitHandler_DraftPU"); em = emf.createEntityManager(); } } Τελικα το βρηκα το λαθος Απλα δεν καλουσα τη μεθοδο connect της DBManager για να δημιουργηθει ο EntityManager Ευχαριστω για την ανταποκριση
visualizer Δημοσ. 2 Μαρτίου 2016 Δημοσ. 2 Μαρτίου 2016 Αυτος ο κωδικας που αναφερεις ειναι generated απο το netbeans δεν καθομαι να τον γραψω ολο αυτο εγω Γνωρίζεις τι κάνει αυτός ο κώδικας ; αν δεν γνωρίζεις κακώς χρησιμοποιείς το εργαλείο του Netbeans αν και μεταξύ μας γενικότερα κακώς το χρησιμοποιείς ανεξαρτήτου περίπτωσης γιατί είναι απλά ότι χειρότερο υπάρχει και ο κώδικας που βγάζει είναι δυσανάγνωστος και πολύ δύσκολος να υποστηριχθεί - συντηρηθεί . Αν ασχοληθείς πάντως με UI κοίταξε την JAVAFX μιας και η SWING έχει παραδώσει πνεύμα . 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα