Java JBuilder开发工具培训教程——利用JBuilder开发JavaBean 图形界面组件的应用实例
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 1.1 利用JBuilder开发JavaBean 图形界面组件的应用实例 1.1.1 在JBuilder中设计一个椭圆按钮
1、创建JavaBean的Project项目文件
(1)选择File|New Project以新建一个项目文件
最后生成该JavaBean的项目文件
2、创建JavaBean程序:
(1)选择 File|New 以显示出object gallery对话框,然后选择JavaBean Wizaed以进入向导。
(2)设置其包名称为javabean、类名称为JavaBeanButton,基类为java.awt.Canvas等
杨教授工作室,版权所有,盗版必究, 1/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(3)最后,点击OK按钮,将自动生成该Bean的程序代码
除掉一些无关的内容
杨教授工作室,版权所有,盗版必究, 2/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
3、为Bean添加用户界面
选中该Bean的Java程序,然后进入Design视图,然后进行界面设计(类同于一般的Java程序的设计过程)。由于本例是设计一个圆形按钮,因此不需要进行GUI设计。
4、为Bean增加属性
(1)选中Bean标签以进入BeansExpress方式
(2)然后选中Properties标签以进入属性设置方式,然后点击Add Property按钮。
在弹出的对话框内进行设置,为Bean增加一个int beanWidth和int beanHeight、Color bkColor的简单属性。
杨教授工作室,版权所有,盗版必究, 3/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(3)为Bean增加一个关联的label属性
(4)在增加一个buttonText的限制属性
杨教授工作室,版权所有,盗版必究, 4/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
所应该注意的是,JBuilder对限制属性的代码有点小错误,可以手动删除它。
(5)最后切换到Source视图以观看源程序----特别注意所产生的关联和限制属性的代码
杨教授工作室,版权所有,盗版必究, 5/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
5、编程Bean的构造函数等代码
package javabean;
import java.awt.*;
import java.io.*;
import java.beans.*;
public class JavaBeanButton extends Canvas implements Serializable
{
private java.awt.Color bkColor;
private int beanWidth;
private int beanHeight;
private String label;
private transient PropertyChangeSupport propertyChangeListeners = new
PropertyChangeSupport(this);
private String buttonText;
private transient VetoableChangeSupport vetoableChangeListeners = new
VetoableChangeSupport(this);
public JavaBeanButton()
{
bkColor = Color.red;
beanWidth = 40;
beanHeight = 40;
label = "确定";
杨教授工作室,版权所有,盗版必究, 6/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
buttonText= "确定";
this.setSize(beanWidth, beanHeight);
this.setFont(new Font("Dialog", Font.PLAIN, 12)); //设置Bean的初始字体
}
public void paint(Graphics g) {
this.setSize(beanWidth, beanHeight);
g.setColor(bkColor);
g.fillOval(0, 0, beanWidth, beanHeight);
g.setColor(Color.black);
FontMetrics fm = g.getFontMetrics(); //确保文字在按钮的中央
g.drawString(label, (beanWidth - fm.stringWidth(label)) / 2,
(beanHeight + fm.getMaxAscent() - fm.getMaxDescent()) / 2);
}
private void readObject(ObjectInputStream ois) throws ClassNotFoundException,
IOException {
ois.defaultReadObject();
}
private void writeObject(ObjectOutputStream oos) throws IOException {
oos.defaultWriteObject();
}
public java.awt.Color getBkColor() {
return bkColor;
}
public void setBkColor(java.awt.Color bkColor) {
this.bkColor = bkColor;
}
public int getBeanWidth() {
return beanWidth;
杨教授工作室,版权所有,盗版必究, 7/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
}
public void setBeanWidth(int beanWidth) {
this.beanWidth = beanWidth;
}
public int getBeanHeight() {
return beanHeight;
}
public void setBeanHeight(int beanHeight) {
this.beanHeight = beanHeight;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
String oldLabel = this.label;
this.label = label;
propertyChangeListeners.firePropertyChange("label", oldLabel, label);
}
public synchronized void removePropertyChangeListener(PropertyChangeListener l)
{
super.removePropertyChangeListener(l);
propertyChangeListeners.removePropertyChangeListener(l);
}
public synchronized void addPropertyChangeListener(PropertyChangeListener l) {
super.addPropertyChangeListener(l);
propertyChangeListeners.addPropertyChangeListener(l);
}
public String getButtonText() {
杨教授工作室,版权所有,盗版必究, 8/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
return buttonText;
}
public void setButtonText(String buttonText) throws
java.beans.PropertyVetoException {
String oldButtonText = this.buttonText;
vetoableChangeListeners.fireVetoableChange("buttonText", oldButtonText, buttonText);
this.buttonText = buttonText;
propertyChangeListeners.firePropertyChange("buttonText", oldButtonText, buttonText);
}
public synchronized void removeVetoableChangeListener(VetoableChangeListener l)
{
vetoableChangeListeners.removeVetoableChangeListener(l);
}
public synchronized void addVetoableChangeListener(VetoableChangeListener l) {
vetoableChangeListeners.addVetoableChangeListener(l);
}
}
6、为本JavaBean添加事件---向事件监听者发送事件
(1)切换到事件页
杨教授工作室,版权所有,盗版必究, 9/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(2)选择所需要的事件-----Action、Focus和Mouse事件
杨教授工作室,版权所有,盗版必究, 10/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(3)JBuilder将产生出对应的事件代码-----切换到Source面板以查看其源程序
(4)也可以为Bean增加事件---让Bean监听某一事件,以让它在该事件的作用下产生反映。 7、创建用户化事件
(1)点击Create Custom Event按钮
杨教授工作室,版权所有,盗版必究, 11/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(2)为Bean添加一个鼠标双击事件DoubleClick
并点击其中的Add new Event 按钮以添加事件响应方法getMouseX和getMouseY,然后点击OK按钮。
(3)JB为Bean产生对应的代码
杨教授工作室,版权所有,盗版必究, 12/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
4)然后再对该用户化的事件进行编程 (
, DoubleClickEvent.java文件内容
package javabean;
import java.util.EventObject; public class DoubleClickEvent extends EventObject
{
private int mouseX, mouseY;
public DoubleClickEvent(Object source)
{
this(source,0,0);
}
public DoubleClickEvent(Object source, int mouseX, int mouseY)
{
super(source);
this.mouseX=mouseX;
this.mouseY=mouseY;
}
杨教授工作室,版权所有,盗版必究, 13/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 public int getMouseX()
{
return this.mouseX;
}
public int getMouseY()
{
return this.mouseY;
}
}
, DoubleClickListener.java文件内容
package javabean;
import java.util.EventListener; public interface DoubleClickListener extends EventListener {
public void MouseDoubleClickX(DoubleClickEvent e);
}
(5)在本JavaBean中触发该用户化的事件
点击Import Event Set按钮,然后在对话框内Import用户自定义的事件接口
定位到我们的事件javabean.DoubleClickListener
杨教授工作室,版权所有,盗版必究, 14/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(6)编程修改fireMouseClicked方法以识别鼠标的双击状态
protected void fireMouseClicked(MouseEvent e) {
if (mouseListeners != null) {
Vector listeners = mouseListeners;
int count = listeners.size();
for (int i = 0; i < count; i++) {
((MouseListener) listeners.elementAt(i)).mouseClicked(e);
}
}
if(e.getClickCount()==2)
{
fireDoubleClick(e.getX(),e.getY());
}
}
private Vector DoubleClickListeners=new Vector(); protected void fireDoubleClick(int mouseX, int mouseY) {
Vector tempVector;
DoubleClickEvent doubleClickEventObj=new DoubleClickEvent(this,mouseX,mouseY);
synchronized(this)
杨教授工作室,版权所有,盗版必究, 15/27页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
{
tempVector=(Vector)DoubleClickListeners.clone();
}
for(int i=0;i
本文档为【Java JBuilder开发工具培训教程——利用JBuilder开发JavaBean 图形界面组件的应用实例】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。