当前位置: 首页 > 图灵资讯 > 技术篇> JavaBean入门

JavaBean入门

来源:图灵教育
时间:2024-02-22 14:37:53
JavaBean入门 一般要求

首先,你必须有一个没有参数的公共结构。该结构还应通过调用各种特征的设置方法来设置特征的缺失值,例如:

public Fireworks(){setAutoStart(true);setBackground(Color.black);setSpeed(10);setRadius(40);...}

如果 bean 是一个从 java.awt.Component 类继承的可见性 bean,您就应该为 bean 定义缺省的首选大小,例如:

public Dimension getPreferredSize(){return (new Dimension(radius*3, radius*3));}public Dimension getMinimumSize(){return getPreferredSize();}

特性

对于你需要的每一个特征,你应该有一个匹配的公共特征 getter 和 setter 方法的特殊实例变量,如:

private int speed;...public int getSpeed(){return speed;}public void setSpeed(int s){speed = s;}

此 get 和 set 该方法必须有与实例变量相同的名称,但第一个字母应大写并使用 get 和 set 开头。

当连接随时更改其特性时,确认它们的特性 Bean 正确的行为在运行中也很重要。如果特征的变化影响 Bean 你应该用这种特征设置的方法来调用视觉外观

repaint();。

同样,如果特征的变化影响 bean 您需要确认验证的大小和位置。我们建议你自己写 validateAll 方法如下:

private void validateAll(){if (isValid()){Component self = this;self.invalidate();Component myParent = self.getParent();if (myParent != null){myParent.invalidate();self = myParent;}self.validate();}}

然后调用这个特征设置的方法

validateAll();。

 

bean 类别将无法假设调用特性设置方法命令。你应该写 bean 为了初始构建它,然后在任何命令中设置它的特征,而不会造成错误。

操作

对于你需要的每一个操作,你应该有一个共同的方法,例如:

public void start(){if(thread==null){thread=new Thread(this);thread.start();}}

在不期望用户创建连接或设置许多特性的情况下,您应该独立操作您的操作方法。 例如,如果你写了一个音频 Bean,您希望打开声音的所有步骤,完成您需要的所有设置,并通过播放操作播放声音。同样,即使声音没有播放,停止操作也应该起作用。

事件

对于您需要的每一个事件或事件设置,您应该定义事件和侦听器类别。查看此示例 FireworksEvent.java 源文件以及 Fireworks.java 文件。此类事件的来源应如下:

import java.awt.*;import java.util.*;public class FireworksEvent extends EventObject{public static final int EXPLODED = 1;int id = 0;public FireworksEvent(Component source, int id){super(source);this.id = id;}public int getID(){return id;}}

您应该在此事件设置中定义一个公共静态结束事件标志符,例如在此例子中 EXPLODED。

查看侦听器源,查看侦听器源 FireworksListener.java 源文件:

import java.util.*;public interface FireworksListener extends EventListener{public abstract void exploded(FireworksEvent e);}

例如,在这个例子中,您应该定义一种公共抽象方法来设置这个事件中的每个事件,例如 exploded。 此外,侦听器必须扩展 EventListener ,以使 JAR 向导能找到它。

然后,如果是的话 bean 类播事件,必须跟踪侦听事件的对象。要这样做,你需要定义侦听器的实例变量和 addListener 和 removeListener 方法。返回 Fireworks.java 例如,您将查看源:

private Vector listeners = new Vector();...public void addFireworksListener(FireworksListener f){listeners.addElement(f);}public void removeFireworksListener(FireworksListener f){listeners.removeElement(f);}

最后,bean 类别需要以正确的频率将事件实际播放到所有侦听器。要做到这一点,你需要定义它 processEvent 方法并以适当的次数调用,例如:

public void processFireworksEvent(FireworksEvent e){for (Enumeration enum = listeners.elements(); enum.hasMoreElements(); )((FireworksListener)enum.nextElement()).exploded(e);}public void run(){...processFireworksEvent(new FireworksEvent(this, FireworksEvent.EXPLODED));}