This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 113068 - Cannot add JPanel to JFrame
Summary: Cannot add JPanel to JFrame
Status: RESOLVED DUPLICATE of bug 118842
Alias: None
Product: guibuilder
Classification: Unclassified
Component: Code (show other bugs)
Version: 6.x
Hardware: PC Windows XP
: P4 blocker (vote)
Assignee: issues@guibuilder
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-08-17 10:05 UTC by piokoch
Modified: 2008-06-16 11:22 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description piokoch 2007-08-17 10:05:29 UTC
I create Java Desktop Project then I create JPanel (called MyJPanel), then I add to it a few controls (JLabel,
JTextField, JButton). Next I create JFrame. I compile the project. Now I want to JPanel to JFrame. I am doing it in the
same way as in NetBeans 5.5.1: I am adding JPanel to palette (it seems to work), then I try to add MyJPanel to the
JFrame and I got warning: "The component cannot be instantiated. Please make sure it is a JavaBeans".

The problem disappears when I remove from MyJPanel's constructor call to initComponents() method, which does not solve
the issue obviously. It seems as if NetBeans 6 expected that no-arg constructor must be empty.

I am using NetBeans 6, M10 with Java SDK 5.
Comment 1 Jiri Prox 2007-08-17 11:48:34 UTC
I suppose there should be and exception in the log, please attach it.
Comment 2 piokoch 2007-08-17 13:15:04 UTC
Ok, I think I know what is going on. I made a test on a simple example: JPanel + JLabel on it. As long as I haven't
changed label's default name the generated java code was: jLabel1.setText("jLabel1");

When I changed the name to, say, "labelka" the generated code was changed to:
jLabel1.setText(application.Application.getInstance(dbapptest.DBApp.class).getContext().getResourceMap(MyPane.class).getString("jLabel1.text"));
// NOI18N

which causes NPE (see log below)

All needed classes and files seems to exist, so this line (Application class?) must do something wrong at runtime.

The relevant (i.e. produced while trying to add JPanel to JFrame) part of messages.log

[WARNING] BeanSupport cannot create default instance of: pl.xoft.quiz.MyPane
SEVERE
org.openide.ErrorManager$AnnException: msg
	at org.openide.ErrorManager$AnnException.findOrCreate(ErrorManager.java:839)
	at org.openide.ErrorManager$DelegatingErrorManager.annotate(ErrorManager.java:628)
	at org.openide.ErrorManager.annotate(ErrorManager.java:430)
	at org.netbeans.modules.form.MetaComponentCreator.showInstErrorMessage(MetaComponentCreator.java:1317)
	at org.netbeans.modules.form.MetaComponentCreator.initComponentInstance(MetaComponentCreator.java:1305)
	at org.netbeans.modules.form.MetaComponentCreator.createVisualComponent(MetaComponentCreator.java:753)
	at org.netbeans.modules.form.MetaComponentCreator.access$200(MetaComponentCreator.java:62)
	at org.netbeans.modules.form.MetaComponentCreator$2.run(MetaComponentCreator.java:192)
	at org.netbeans.modules.form.FormLAF$1.run(FormLAF.java:183)
	at org.openide.util.Mutex.doEventAccess(Mutex.java:1201)
	at org.openide.util.Mutex.readAccess(Mutex.java:262)
	at org.netbeans.modules.form.FormLAF.executeWithLookAndFeel(FormLAF.java:168)
	at org.netbeans.modules.form.MetaComponentCreator.precreateVisualComponent(MetaComponentCreator.java:189)
	at org.netbeans.modules.form.HandleLayer$NewComponentDrag.init(HandleLayer.java:2583)
	at org.netbeans.modules.form.HandleLayer$NewComponentDrag.<init>(HandleLayer.java:2579)
	at org.netbeans.modules.form.HandleLayer$NewComponentDropListener.dragEnter(HandleLayer.java:2852)
	at java.awt.dnd.DropTarget.dragEnter(DropTarget.java:337)
	at sun.awt.dnd.SunDropTargetContextPeer.processEnterMessage(SunDropTargetContextPeer.java:295)
	at sun.awt.dnd.SunDropTargetContextPeer.access$500(SunDropTargetContextPeer.java:53)
	at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEnterEvent(SunDropTargetContextPeer.java:759)
	at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(SunDropTargetContextPeer.java:727)
	at sun.awt.dnd.SunDropTargetEvent.dispatch(SunDropTargetEvent.java:29)
	at java.awt.Component.dispatchEventImpl(Component.java:3826)
	at java.awt.Container.dispatchEventImpl(Container.java:2024)
	at java.awt.Component.dispatchEvent(Component.java:3803)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
	at java.awt.LightweightDispatcher.trackMouseEnterExit(Container.java:4017)
	at java.awt.LightweightDispatcher.processDropTargetEvent(Container.java:3955)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3817)
	at java.awt.Container.dispatchEventImpl(Container.java:2010)
	at java.awt.Window.dispatchEventImpl(Window.java:1778)
	at java.awt.Component.dispatchEvent(Component.java:3803)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
msg
Caused: java.lang.NullPointerException
	at pl.xoft.quiz.MyPane.initComponents(MyPane.java:32)
	at pl.xoft.quiz.MyPane.<init>(MyPane.java:17)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
	at java.lang.Class.newInstance0(Class.java:350)
	at java.lang.Class.newInstance(Class.java:303)
	at org.netbeans.modules.form.CreationFactory.createDefaultInstance(CreationFactory.java:136)
	at org.netbeans.modules.form.RADComponent.createBeanInstance(RADComponent.java:203)
	at org.netbeans.modules.form.RADComponent.initInstance(RADComponent.java:147)
[catch] at org.netbeans.modules.form.MetaComponentCreator.initComponentInstance(MetaComponentCreator.java:1302)
	at org.netbeans.modules.form.MetaComponentCreator.createVisualComponent(MetaComponentCreator.java:753)
	at org.netbeans.modules.form.MetaComponentCreator.access$200(MetaComponentCreator.java:62)
	at org.netbeans.modules.form.MetaComponentCreator$2.run(MetaComponentCreator.java:192)
	at org.netbeans.modules.form.FormLAF$1.run(FormLAF.java:183)
	at org.openide.util.Mutex.doEventAccess(Mutex.java:1201)
	at org.openide.util.Mutex.readAccess(Mutex.java:262)
	at org.netbeans.modules.form.FormLAF.executeWithLookAndFeel(FormLAF.java:168)
	at org.netbeans.modules.form.MetaComponentCreator.precreateVisualComponent(MetaComponentCreator.java:189)
	at org.netbeans.modules.form.HandleLayer$NewComponentDrag.init(HandleLayer.java:2583)
	at org.netbeans.modules.form.HandleLayer$NewComponentDrag.<init>(HandleLayer.java:2579)
	at org.netbeans.modules.form.HandleLayer$NewComponentDropListener.dragEnter(HandleLayer.java:2852)
	at java.awt.dnd.DropTarget.dragEnter(DropTarget.java:337)
	at sun.awt.dnd.SunDropTargetContextPeer.processEnterMessage(SunDropTargetContextPeer.java:295)
	at sun.awt.dnd.SunDropTargetContextPeer.access$500(SunDropTargetContextPeer.java:53)
	at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEnterEvent(SunDropTargetContextPeer.java:759)
	at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(SunDropTargetContextPeer.java:727)
	at sun.awt.dnd.SunDropTargetEvent.dispatch(SunDropTargetEvent.java:29)
	at java.awt.Component.dispatchEventImpl(Component.java:3826)
	at java.awt.Container.dispatchEventImpl(Container.java:2024)
	at java.awt.Component.dispatchEvent(Component.java:3803)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
	at java.awt.LightweightDispatcher.trackMouseEnterExit(Container.java:4017)
	at java.awt.LightweightDispatcher.processDropTargetEvent(Container.java:3955)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3817)
	at java.awt.Container.dispatchEventImpl(Container.java:2010)
	at java.awt.Window.dispatchEventImpl(Window.java:1778)
	at java.awt.Component.dispatchEvent(Component.java:3803)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
ALL [null]: The component cannot be instantiated. Please make sure it is a JavaBean.


And, for completnes, the JPanel source code:

/*
 * MyPane.java
 *
 * Created on 16 sierpień 2007, 16:50
 */

package pl.xoft.quiz;

/**
 *
 * @author  pi
 */
public class MyPane extends javax.swing.JPanel {
    
    /** Creates new form MyPane */
    public MyPane() {
        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.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();

       
jLabel1.setText(application.Application.getInstance(dbapptest.DBApp.class).getContext().getResourceMap(MyPane.class).getString("jLabel1.text"));
// NOI18N

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jLabel1)
                .addContainerGap(348, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jLabel1)
                .addContainerGap(271, Short.MAX_VALUE))
        );
    }// </editor-fold>
    
    
    // Variables declaration - do not modify
    private javax.swing.JLabel jLabel1;
    // End of variables declaration
    
}
Comment 3 Jan Stola 2008-06-16 11:22:25 UTC
Already fixed as issue 118842.

*** This issue has been marked as a duplicate of 118842 ***