bulenkov / Darcula

Darcula Look and Feel
Apache License 2.0
723 stars 114 forks source link

java.lang.ArrayIndexOutOfBoundsException #17

Closed jmborer closed 8 years ago

jmborer commented 8 years ago

Hello,

When I am using the Netbeans IDE with Darcula L&F when I try to open a Form editor containing a JDateChooser, I get this java.lang.ArrayIndexOutOfBoundsException. Probably the components array at this point is still empty. Maybe you should modify the code of DarculaSpinnerUI.java

@Override protected void replaceEditor(JComponent oldEditor, JComponent newEditor) { super.replaceEditor(oldEditor, newEditor); if (oldEditor != null) { oldEditor.getComponents()[0].removeFocusListener(myFocusListener); } if (newEditor != null && (newEditor.getComponents().length > 0)) { newEditor.getComponents()[0].addFocusListener(myFocusListener); } }

Here is the stacktrace:

INFO [org.netbeans.modules.form.BeanSupport]: Cannot create default instance of: ch.skyguide.inch.position.zrh.pagesystem.PageSystem INFO: 0 java.lang.ArrayIndexOutOfBoundsException: 0 at com.bulenkov.darcula.ui.DarculaSpinnerUI.replaceEditor(DarculaSpinnerUI.java:60) at javax.swing.plaf.basic.BasicSpinnerUI$Handler.propertyChange(BasicSpinnerUI.java:974) at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:335) at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:327) at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:263) at java.awt.Component.firePropertyChange(Component.java:8430) at javax.swing.JSpinner.setEditor(JSpinner.java:518) at com.toedter.components.JSpinField.(JSpinField.java:92) at com.toedter.components.JSpinField.(JSpinField.java:65) at com.toedter.calendar.JYearChooser.(JYearChooser.java:43) at com.toedter.calendar.JCalendar.(JCalendar.java:185) at com.toedter.calendar.JCalendar.(JCalendar.java:95) at com.toedter.calendar.JDateChooser.(JDateChooser.java:152) at com.toedter.calendar.JDateChooser.(JDateChooser.java:100) at ch.skyguide.inch.ui.DateTimePicker.initComponents(DateTimePicker.java:172) at ch.skyguide.inch.ui.DateTimePicker.(DateTimePicker.java:36) at ch.skyguide.inch.position.common.mail.MailPage.initComponents(MailPage.java:467) at ch.skyguide.inch.position.common.mail.MailPage.(MailPage.java:75) at ch.skyguide.inch.position.zrh.pagesystem.PageSystem.initComponents(PageSystem.java:80) at ch.skyguide.inch.position.zrh.pagesystem.PageSystem.(PageSystem.java:15) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at java.lang.Class.newInstance(Class.java:442) at org.netbeans.modules.form.CreationFactory.createDefaultInstance(CreationFactory.java:178) at org.netbeans.modules.form.RADComponent.createBeanInstance(RADComponent.java:252) at org.netbeans.modules.form.RADComponent.initInstance(RADComponent.java:191) at org.netbeans.modules.form.GandalfPersistenceManager.restoreComponent(GandalfPersistenceManager.java:780) at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:968) at org.netbeans.modules.form.GandalfPersistenceManager.restoreComponent(GandalfPersistenceManager.java:824) at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:968) at org.netbeans.modules.form.GandalfPersistenceManager.loadForm(GandalfPersistenceManager.java:503) at org.netbeans.modules.form.GandalfPersistenceManager.loadForm(GandalfPersistenceManager.java:283) at org.netbeans.modules.form.FormEditor$2.run(FormEditor.java:352) at org.netbeans.modules.form.FormLAF$2.run(FormLAF.java:293) at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEventAccess(NbMutexEventProvider.java:138) at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:98) at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:94) at org.openide.util.Mutex.readAccess(Mutex.java:250) at org.netbeans.modules.form.FormLAF.executeWithLookAndFeel(FormLAF.java:276) at org.netbeans.modules.form.FormEditor.loadFormData(FormEditor.java:349) [catch] at org.netbeans.modules.nbform.FormEditorSupport.loadOpeningForm(FormEditorSupport.java:468) at org.netbeans.modules.nbform.FormDesignerTC.loadForm(FormDesignerTC.java:279) at org.netbeans.modules.nbform.FormDesignerTC.access$300(FormDesignerTC.java:87) at org.netbeans.modules.nbform.FormDesignerTC$PreLoadTask$1.run(FormDesignerTC.java:268) 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 org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159) 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)

AlexFalappa commented 8 years ago

@jmborer I made a Pull Request to fix the problem you describe. See PR #14.

jmborer commented 8 years ago

Great. Hope it will be included soon.