1. 编写Bean的源程序SimpleBean.java如下:

   import java.awt.*;
   import java.io.Serializable;

   public class SimpleBean extends Canvas implements Serializable
   {
  //该bean从java.awt.Canvas派生,所以具有了Canvas的所有属性和方法
    public SimpleBean(){
      setSize(60,40); //设置该bean的尺寸
      setBackground(Color.red); //设置该bean的背景颜色
    }
   }
   
  SimpleBean从java.awt.Canvas组件派生,所以是一个可视化的bean,并且实现了java.io.Serializable接口,这个接口是所有Bean都必须实现的,因为SimpleBean具有Canvas的所有属性和方法,如背景色和组件尺寸等属性,并可以调用相应的方法设置这些属性。

 2. 编译源程序:

  javac SimpleBean.java产生字节码文件SimpleBean.class。

 3. 编写制作(nmake)文件

  这个nmake文件会编译这个SimpleBean组件并会产生一个JAR文件。将编写好的makefile文件存储为simpe.gmk(UNIX)或simple.mk(windows),并与你的SimpleBean.class放在同一个目录下,nmake文件清单如下:

  #gmumake文件
  CLASSFILES= SimpleBean.class
  JARFILE= SimpleBean.jar
  all: $(JARFILE)
  # 创建一个带有适当说明文件(manifest)的JAR文件
  $(JARFILE): $(CLASSFILES) $(DATAFILES)
    echo "Name: SimpleBean.class" >> manifest.tmp
    echo "Java-Bean: True" >> manifest.tmp
    jar cfm $(JARFILE) manifest.tmp *.class
    @/bin/rm manifest.tmp
    # 编译源程序
  %.class: %.java
    export CLASSPATH; CLASSPATH=. ; \
    javac $<
    #删除产生的中间文件
  clean:
    /bin/rm -f *.class
    /bin/rm -f $(JARFILE)
    # nmake 文件
  CLASSFILES= simplebean.class
  JARFILE= simplebean.jar
  all: $(JARFILE)
  # 创建一个带有适当说明文件(manifest)的JAR文件
  $(JARFILE): $(CLASSFILES) $(DATAFILES)
    jar cfm $(JARFILE) <<manifest.tmp *.class
  Name: SimpleBean.class
  Java-Bean: True
  <<
  #将类打包,"Java-Bean:True"可以使得类出现在ToolBox窗口中
  .SUFFIXES: .java .class
  {sunw\demo\simple}.java{sunw\demo\simple}.class :
    set CLASSPATH=.
    javac $<
    #清除中间文件
  clean:
    -del sunw\demo\simple\*.class
    -del $(JARFILE)

 
4. 运行makefile文件

  对于UNIX,运行gnumake simple.gmk
  对于windows,运行nmake -f simple.mk
  会在当前目录下创建一个JAR文件,这个JAR文件里包含了这个bean的信息。

  本小节我们完成了一个很典型的JavaBean,其实就是一个有一定特殊规则的Java类,它有一些特殊的地方比如要实现某些接口类,不过归根结底它还是一个Java类,它可以使用任何Java语言里提供的功能比如说继承于Canvas等。而上面我们提供的makefile则可以作为模板,你以后要编写你自己的bean的makefile的时候只需要修改上面提供的makefile就可以了。