Académique Documents
Professionnel Documents
Culture Documents
Sun soporta Java beans en el paquete java.beans. Observe las interfaces de dicho
paquete:
A continuacin, veremos cmo crear Java beans, desde los ms sencillos hasta
los que soportan propiedades y mtodos y permiten a los usuarios incrustar otros
controles dentro de ellos.
Eso es todo. Ahora, cuando hace clic sobre el botn del beanbox, el juggler dejar
de ejecutarse.
Enhorabuena! Ya ha conectado dos beans, y por lo tanto, ha creado un nuevo
programa.
Cmo puede ejecutar este programa fuera del beanbox? Lea detenidamente la
seccin siguiente.
package sunw.demo.bean;
import java.awt.*;
import java.awt.event.*;
.
.
.
Mientras permanece activa la clase actual del bean, utilice la clase Canvas para
dibujar el propio bean (tambin puede usar otras clases, como la clase Panel). El resto
del cdigo es bastane sencillo y se utiliza de manera ordinaria; se aade un
controlador de ratn para registrar los clic del ratn, y se define el tamao del lienzo ( y
por lo tanto, en tamao del bean):
package sunw.demo.bean;
import java.awt.*;
import java.awt.event.*;
public class bean extends Canvas
{
int count;
public bean()
{
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me) {
clicked();
}
});
count = 0;
setSize(200, 100);
}
.
.
.
}
Finalmente, es necesario implementar el mtodo que administra los clic del ratn,
y dibujar el bean, incluyendo el registro de clics, en el mtodo paint:
package sunw.demo.bean;
import java.awt.*;
import java.awt.event.*;
public class bean extends Canvas
{
int count;
public bean()
{
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me) {
clicked();
}
});
count = 0;
setSize(200, 100);
}
public void clicked()
{
count++;
repaint();
}
public void paint(Graphics g)
{
Dimension dimension = getSize();
int height = dimension.height;
int width = dimension.width;
g.setColor(new Color(255, 0, 0));
g.fillRect(0, 0, --width, --height);
g.setColor(new Color(0, 0, 0));
g.drawString("Click count = " + count, 50, 50);
}
}
Para convertir un bean en lo que es, debe almacenar los archivos de clase a
utilizar en el archivo JAR, y utilizar un manifiesto para especificar qu clases son
beans. Para ver cmo funciona esto, utilizaremos el bean desarrollado en la seccin
anterior y crearemos un archivo de manifiesto, bean.mft. Situaremos este archivo de
manifiesto en C:\BDK\demo para crear de un modo ms sencillo el archivo JAR (ver la
seccin siguiente).
Para especificar que una clase de un archivo JAR es un Java bean, tiene que
pasar sus atributos Java-Bean a True. El archivo de clase se encuentra en el paquete
sunw.demo.bean, lo que significa que se almacenar en el archivo JAR como
sunw/demo/bean/bean (al igual que UNIX, los archivos JAR utilizan barras inclinadas
como separaciones de directorio). Para especificar que este archivo de clase es un
bean, observe cmo queda el archivo de manifiesto, bean.mft:
Name: sunw/demo/bean/bean.class
Java-Bean: True
En la seccin siguiente crear el archivo JAR para este bean.
package sunw.demo.button;
import java.awt.*;
import java.awt.event.*;
public class button extends Panel implements ActionListener
{
int count;
Button button1;
public button()
{
count = 0;
setSize(200, 100);
button1 = new Button("Click me");
button1.addActionListener(this);
add(button1);
}
package sunw.demo.button;
import java.awt.*;
import java.awt.event.*;
public class button extends Panel implements ActionListener
{
int count;
Button button1;
public button()
{
count = 0;
setSize(200, 100);
button1 = new Button("Click me");
button1.addActionListener(this);
add(button1);
}
public void actionPerformed(ActionEvent e)
{
count++;
repaint();
}
public void paint(Graphics g)
{
Dimension dimension = getSize();
int height = dimension.height;
int w = d.width;
g.setColor(new Color(255, 0, 0));
g.fillRect(0, 0, w-1, h-1);
g.setColor(new Color(0, 0, 0));
g.drawString("Click count = " + count, 50, 50);
}
}
Hace esto
Indica un icono en color de 16 x 16.
Hace esto
Devuelve una coleccin arbitraria de otros
objetos BeanInfo.
BeanDescriptor getBeanDescriptor( )
int getDefaultEventIndex( )
int getDefaultPropertyIndex( )
EventSetDescriptor[
getEventSetDescriptors( )
Image getIcon(int iconKind)
Descripcin
Construye un objeto BeanInfo.
Descripcin
Implementado para indicar que n hay otros
objetos BeanInfo relevantes.
BeanDescriptor getBeanDescriptor( )
int getDefaultEventIndex( )
int getDefaultPropertyIndex( )
EventSetDescriptor[
getEventSetDescriptors( )
Image getIcon(int iconKind)
Descripcin
Construye un FeatureDescriptor.
Descripcin
Obtiene un detalle de los
predeterminados de este atributo.
String getDisplayName( )
String getName( )
String getShortDescription( )
Obtiene la
elemento.
boolean isExpert( )
boolean isHidden( )
boolean isPreferred( )
descripcin
breve
nombres
de
este
Descripcin
Genera una clase PropertyEditor explcita
que ha sido registrada para esta propiedad.
Class getPropertyType( )
Method getReadMethod( )
Method getWriteMethod( )
boolean isBound( )
boolean isConstrained( )
que
que
que
void
setPropertyEditorClass(Class Normalmente, PropertyEditors ser
propertyEditorClass)
localizado mediante
PropertyEditorManager.
package sunw.demo.bean2;
import java.awt.*;
import java.awt.event.*;
public class Bean2 extends Canvas
{
private boolean filled;
.
.
.
package sunw.demo.bean2;
import java.awt.*;
import java.awt.event.*;
public class Bean2 extends Canvas
{
private boolean filled;
int count;
public Bean2()
{
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me)
{
clicked();
}
});
count = 0;
filled = false;
setSize(200, 100);
}
.
.
.
}
package sunw.demo.bean2;
import java.awt.*;
import java.awt.event.*;
public class Bean2 extends Canvas
{
private boolean filled;
int count;
public Bean2()
{
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me)
{
clicked();
}
});
count = 0;
filled = false;
setSize(200, 100);
}
public void clicked()
{
count++;
repaint();
}
package sunw.demo.bean2;
import java.beans.*;
public class Bean2BeanInfo extends SimpleBeanInfo
{
.
.
.
}
package sunw.demo.bean2;
import java.beans.*;
public class Bean2BeanInfo extends SimpleBeanInfo
{
public PropertyDescriptor[] getPropertyDescriptors()
{
try {
PropertyDescriptor filled = new
PropertyDescriptor("filled", Bean2.class);
PropertyDescriptor propertydescriptor[] = {filled};
return propertydescriptor;
}
catch(Exception e) {}
return null;
}
}
Name: sunw/demo/bean2/Bean2BeanInfo.class
Name: sunw/demo/bean2/Bean2.class
Java-Bean: True