Beans

I Bean (letteralmente, chicchi di Java) sono classi scritte in linguaggio di programmazione Java secondo una particolare convenzione. Sono usate per incapsulare molti oggetti in un singolo oggetto (il bean), così da poter passare il bean invece degli oggetti individuali.
La specifica della Sun Microsystems le definisce come “componenti software riutilizzabili che possono essere manipolate visivamente in un tool per il build”.

Esempio di JavaBean

La prima cosa da fare è creare una libreria di JavaBeans nella maniera seguente.

  • File > New Project… > General > Java Class Library > Next > Project Name: Beans > Finish

In questo esempio creeremo un nuovo Bean JImagePanel sottoclasse di JComponent, avente come funzionalità aggiuntiva quella di possedere un’immagine di sfondo nella nuova proprietà icon, che può essere posizionata dove si vuole all’interno di JImagePanel mediante le due proprietà iconX e iconY.

  • File > New File… > JavaBeans Object: JavaBeans Component > Class Name: JImagePanel; Package: beans > Finish

A questo punto è sufficiente copiare e incollare al posto del listato di esempio preesistente del Bean il codice seguente:

/*
 * JImagePanel.java
 *
 * Created on 20 maggio 2011, 21.21
 */
package beans;

import java.awt.Graphics;
import java.io.Serializable;
import javax.swing.Icon;
import javax.swing.JComponent;

/**
 * @author Gianfranco Oddenino
 */
public class JImagePanel extends JComponent implements Serializable {

    private Icon icon = null;
    private int iconX = 0, iconY = 0;

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        if (icon != null) {
            icon.paintIcon(this, g, iconX, iconY);
        }
    }

    public Icon getIcon() {
        return icon;
    }

    public void setIcon(Icon icon) {
        this.icon = icon;
        repaint();
    }

    public int getIconX() {
        return iconX;
    }

    public void setIconX(int iconX) {
        this.iconX = iconX;
        repaint();
    }

    public int getIconY() {
        return iconY;
    }

    public void setIconY(int iconY) {
        this.iconY = iconY;
        repaint();
    }

}

Fatto ciò possiamo compilare la libreria Beans cliccando con il tastro destro del mouse sulla radice dell’albero Beans e selezionando Clean and Build Project. Verrà creato un archivio Beans.jar contenente il nostro nuovo bean.

  • Tools > Palette Manager > Swing/AWT Component > Add from JAR > Selezionare nella cartella Beans/dist il file Beans.jar appena creato > Next >
  • Selezionare il nuovo bean JImagePanel > Next > Aggiungerlo alla palette Beans > Finish

Il nuovo Bean sarà d’ora in poi disponibile nella linguetta Beans della palette dei componenti Swing/AWT e potrà essere inserito in qualunque applicazione Java visuale.

Potete scaricare il seguente file ZIP contenente il file Beans.jar con tutti i Beans che utilizzo abitualmente con i miei studenti: JOxy, JPlot, JTimer, JImagePanel e altri, con la relativa icona grafica. L’assegnazione dell’icona e la visibilità delle proprietà devono essere fatte mediante la costruzione di una classe BeanInfo, che vedremo in seguito su questa pagina.

Download: Beans.zip