首页 Java JBuilder开发工具培训教程——利用JBuilder开发JavaBean 图形界面组件的应用实例

Java JBuilder开发工具培训教程——利用JBuilder开发JavaBean 图形界面组件的应用实例

举报
开通vip

Java JBuilder开发工具培训教程——利用JBuilder开发JavaBean 图形界面组件的应用实例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 ...

Java JBuilder开发工具培训教程——利用JBuilder开发JavaBean 图形界面组件的应用实例
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,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_637320
暂无简介~
格式:doc
大小:784KB
软件:Word
页数:26
分类:互联网
上传时间:2017-09-21
浏览量:25