# Bean will nicht in netbeans



## SuperFamicom (1. Mrz 2009)

Hallo,

ich habe ein bean erstellt, die allerdings im Editor nicht auf mein JFrame möche.
Es kommt die Meldung:

"The component cannot be instantiated. Please make sure it is a JavaBeans component."

Den Fehler kann ich einfach nicht finden. An die Namenskonventionen habe ich mich gehalten und selbst wenn ich die getter und setter auskommentiere und nur einen Konstruktor stehen habe, kommt die dämliche Meldung nach rebuilt immernoch.


```
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.border.EtchedBorder;

/**
 * @author 
 */
public class JXSPAdminBean extends JComponent {
    private static final int XPREFSIZE = 216;
    private static final int YPREFSIZE = 40;
    
    private final JButton loadButton    = new JButton("Laden");
    private final JButton closeButton   = new JButton("Schließen");
    
    private int             scale   = 3;
    private BufferedImage   image   = null;
    private JFileChooser    chooser = null;   
    
    public JXSPAdminBean() {
        setLayout(null);
        setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
        
        chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
            @Override
            public boolean accept(File f) {
                String name = f.getName().toLowerCase();
                return name.endsWith(".bmp") || name.endsWith(".gif") || name.endsWith(".pcx") || name.endsWith(".png") || f.isDirectory();
            }

            @Override
            public String getDescription() {
                return "Bildformate (*.BMP, *.GIF, *.PCX, *.PNG";
            }
        });
        
        loadButton.setBounds(8, 8, 96, 24);
        /*loadButton.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
                    try {
                        BufferedImage tmpImg = ImageIO.read(chooser.getSelectedFile());
                        setImage(createBufferedImage(tmpImg.getScaledInstance(tmpImg.getWidth() * scale, tmpImg.getHeight() * scale, BufferedImage.SCALE_REPLICATE)));
                    } catch (IOException ex) {
                        Logger.getLogger(JXSPAdminBean.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            }
            
        });*/
        loadButton.setVisible(true);
        
        closeButton.setBounds(112, 8, 96, 24);
        /*closeButton.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                setImage(null);
            }
            
        });*/
        closeButton.setVisible(true);
        
        add(loadButton);
        add(closeButton);
    }

    /**
     * Setzt das Anzeigebild.
     * @param newValue Das neue Anzeigebild.
     */
    /*public final void setImage(BufferedImage newValue) {
        BufferedImage oldValue = image;
        image = newValue;
        firePropertyChange("image", oldValue, newValue);
    }
    
    public final BufferedImage getImage() {
        return image;
    }*/
    
    @Override
    public Dimension getPreferredSize() {
        return new Dimension(XPREFSIZE, YPREFSIZE);
    }
    
    private final BufferedImage createBufferedImage(Image img) {
        if (img instanceof BufferedImage) {
            return (BufferedImage) img;
        }
        BufferedImage bufImg = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB);
        Graphics2D    g      = bufImg.createGraphics();
        g.drawImage(img, 0, 0, null);
        g.dispose();
        return bufImg;
    }
}
```

Was habe ich hier übersehen? Ich hoffe ihr könnt mir helfen.

-mfg-


----------



## L-ectron-X (1. Mrz 2009)

Erbe mal von JPanel und versuchs nochmal. Gehts jetzt?


----------



## SuperFamicom (2. Mrz 2009)

Nein,
das ging auch nicht - schon probiert -.
Aber ich habe den Fehler gefunden. Wobei die Meldung mich irre geleitet hat. Ich dachte, es lag an irgendwelchen Bean-Vorschriften, einem bug in netbeans oder ungünstig vollführte Klassenumbenennungen (<- kommt leider häufig vor, wenn man dann noch compiliert). Letztlich führte eine fehlende Initialisierung des JFileChooser zu dieser Meldung, es handle sich nicht um eine Bean. Eigenartig. So ist mir der Fehler nicht aufgefallen.

Danke trotzdem.

-mfg-


----------

