跟我学Java入门到精通培训教程——JavaBean组件编程技术及应用实例(第4部分)

合集下载

跟我学Java入门到精通培训教程——在项目中应用Java泛型技术的实例

跟我学Java入门到精通培训教程——在项目中应用Java泛型技术的实例

1.1跟我学Java入门到精通培训教程——在项目中应用Java泛型技术的实例1.1.1Java泛型相关的应用技术1、什么是泛型----泛型的本质是参数化类型(1)泛型的本质是参数化类型泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。

(2)泛型的种类这种参数类型可以用在类、接口和方法的定义中,分别称为泛型类、泛型接口、泛型方法。

(3)泛型类的代码示例public class SomeGenericsDemo<E> {Collection<E> oneCollection;public void doSomeThing(E oneElement) {oneCollection.add(oneElement);// ...}}2、为什么要应用泛型泛型就好比Word中的模板,在Word的模板中,提供了基本的文档编辑内容,在定义Word 模板时,对具体编辑哪种类型的文档是未知的。

在Java中,泛型则提供了类、接口和方法、变量等的模板,泛型也可以看作是占位符,与定义Word模板时类似,定义泛型时的具体类型是未知的。

(1)Java语言引入泛型的好处是安全和简单在Java SE 1.5之前,没有泛型的情况的下,通过对Object类型的对象引用来实现参数的“任意化”,“任意化”带来的缺点是需要在使用者的代码中要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型是可以预知的情况下进行的。

public class SomeDigitClass{public void doSomeThing(Object oneParameterObject) {if(oneParameterObject instanceof Integer){Integer targetParameterObject=(Integer)oneParameterObject;}else if(oneParameterObject instanceof Float){Float targetParameterObject=(Float)oneParameterObject;}}}而对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个很严重的安全隐患。

跟我学Java入门到精通培训教程——自定义GUI 界面类型的JavaBean组件实例(第1部分)

跟我学Java入门到精通培训教程——自定义GUI 界面类型的JavaBean组件实例(第1部分)
// bean 的属性 protected String messageText; // The message to display protected String yesLabel; // Text for the yes, no, & cancel buttons protected String noLabel; protected String cancelLabel; // Beans 的内部组件 protected Button yes, no, cancel; protected Label message; /** The no-argument bean constructor, with default property values */
// and action command for each, and adding them to the buttonbox
yes = new Button();
// Create buttonsຫໍສະໝຸດ no = new Button();
cancel = new Button();
杨教授工作室,版权所有,盗版必究, 2/25 页
杨教授工作室,版权所有,盗版必究, 3/25 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
杨教授工作室,版权所有,盗版必究, 1/25 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
public YesNoPanel() { this("Your Message Here");
} public YesNoPanel(String messageText) {
this(messageText, "Yes", "No", "Cancel"); } public YesNoPanel(String messageText, String yesLabel, String noLabel, String cancelLabel) {

跟我学Java泛型技术及应用实例——Java泛型技术在Java集合中的应用示例

跟我学Java泛型技术及应用实例——Java泛型技术在Java集合中的应用示例
3、采用泛型的集合元素示例 泛型规定了某个集合只能存放特定类型的属性,当添加类型与规定不一致时,编译器会
直接报错。而当我们从集合中取出成员元素时直接取出即可,不用进行类型转换,因为已经 规定了里面存放的只能是某种类型。
当然,在集合中除了可以存入定义的泛型类型的对象实例之外,也还可以存入泛型类型 子类的对象实例。
在 Java 语言中将集合设计为 泛型,如下示图为 JDK API 中的 Collection 集合接口的定 义:
增加了泛型支持后的 Java 集合,完全可以记住集合中各个成员元素的数据类型,并可以 在编译时检查集合中元素的类型。即解决一些安全问题;同时还可以让代码变得更加简洁。
杨教授工作室,版权所有,盗版必究, 1/10 页
杨教授工作室,版权所有,盗版必究, 3/10 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
则可以传递该接口的实现类。下面的示例是将 E 设置为 Number 类型: List<Number> numberList= new ArrayList<Number>(); numberList.add(2.0); numberList.add(2); 而下面的示例是将 E 设置为 String 类型:List<String> myList;那工作室 精心创作的优秀程序员 职业提升必读系列资料
2、不采用泛型的集合元素的应用示例 java.util.List oneList=new java.util.ArrayList(); oneList.add("1"); /** 在使用时通过强制类型转换获得正确的值 */ oneList.add(new Integer(2)); String oneElement=(String)oneList.get(0); /** 此时将会出现转换错误而产生异常抛出 */ System.out.println("不采用泛型的集合元素:"+oneElement); String twoElement=(String)oneList.get(1); System.out.println("不采用泛型的集合元素:"+twoElement);

跟我学Java入门到精通培训教程——第1章 Java Swing 组件技术及应用实例(第1部分)

跟我学Java入门到精通培训教程——第1章 Java Swing 组件技术及应用实例(第1部分)

1.1跟我学Java入门到精通培训教程——第1章 Java Swing 组件技术及应用实例(第1部分)【教学目标】在本讲中,希望您能了解和掌握如下的知识点:Swing容器组件的编程、Swing中的标准对话框,Swing基本组件的编程,Swing的“外观和感觉”。

最后能够利用Swing组件设计实现一个具体的J2SE的应用。

1.1.1Java Swing 组件技术简介1、Swing 特性(1)是AWT的扩展,它比AWT提供了更多的组件和外观。

(2)是Sun公司的新一代的图形界面的标准。

(3)Swing组件是纯Java代码(但JFrame、JDialog、JApplet除外),因此与平台无关。

2、AWT的缺点:组件少而且是本地代码实现。

3、Swing和AWT相比一个重要改进在于Swing把一个组件的处理分为图形部分和数据部分(采用MVC模式设计)。

其中图形部分由编程环境统一处理(V),而数据部分由一个数据处理模型进行处理(M)。

4、Swing组件所在的包javax.swing,每个组件都以“J”开头,各个组件都是JComponent的子类。

5、Swing中的各个组件的事件编程、容器的布局方式仍然与AWT中对应的编程一致,没有改变。

6、正确理解重量组件与轻量组件的不同(1)轻量组件—Swing组件,由纯Java代码实现,占用系统资源少。

(2)重量组件--AWT组件,由本地C代码实现,占用系统资源多7、Swing组件的分类(1)顶级容器:JFrame、JApplet、JDialog(2)一般的容器普通功能的容器:JPanel、JScrollPanel、Jtoolbar,JSplitPanel、JTabbedPanel特殊功能的容器:JLayeredPanel、JRootPane InternalFrame(3)基本组件:JButton、JCombobox、JList、JMenu、JSlider、JTextField等8、在Swing的顶级容器中添加组件的规则(1)与AWT的不同点对JFrame与JApplet等顶级的容器,在添加组件时与AWT不同点是不能直接调用容器的add()方法。

跟我学Java入门到精通培训教程——第8章 利用JBuilder开发各种Java应用程序(第5部分)

跟我学Java入门到精通培训教程——第8章 利用JBuilder开发各种Java应用程序(第5部分)

1.1跟我学Java入门到精通培训教程——第8章利用JBuilder开发各种Java应用程序(第5部分)1.1.1在JBuilder中测试JavaBean组件1、将JavaBean组件的*.jar包文件放入到JBuilder的库环境中(1)选择Tools—Configure Libraries在对话框中添加所开发的*.jar包文件2、将所开发的JavaBean组件添加到JBuilder的工具箱中(1)右击JBuilder的某个工具箱的页面(2)指定某个工具页的名称(3)在该工具页中添加所开发的组件找到所开发的组件类3、在应用程序中使用它(1)添加该组件到应用系统中方法同其它标准的AWT和Swing 种的组件相同。

(2)也可以可视化地改变其属性(3)JBuilder将帮助我们产生代码4、在JBuilder中测试JavaBean的自检功能5、在JBuilder中测试定制序列化1.1.2利用JBuilder产生国际化的程序1、工具主要可以利用Resource Strings wizard和Localizable Property Setting对话框两种形式来实现。

2、使用Resource Strings wizard(1)选择Wizards菜单中的“Resource Strings”(2)缺省时为ListResourceBundles(本例采用继承ListResourceBundles类以编程的方式来产生资源包所在的类),如果要求创建出PropertyResourceBundles,则选择New按钮。

并且选择是为当前程序还是整个包进行资源化。

(3)在此对话框内,主要是选择资源字符串的命名方式。

(4)列出所有的资源字符串,并且按下finish按钮(5)JBuilder将在项目中自动产生一个ListResourceBundles的子类文件,并且以“名称”和“值”的方式列出(以后可以针对不同的语言系统,只要改变某一名称所对应的显示文字类型即可)(6)JBuilder将自动地将项目中的所有程序中涉及字符串的代码改变为如下方式3、Localizable Property Setting对话框方法(1)在某个组件的属性面板,右击该组件的Text或者Title属性项目(2)命名该属性在资源字符串文件中的key名称杨教授工作室精心创作的优秀程序员职业提升必读系列资料1.2跟我学Java入门到精通培训教程——第9章项目开发实训在讲课过程中贯穿案例,如利用JBuilder实现Java 应用程序项目的开发,主要涉及Swing GUI、数据库、JavaBean和国际化等方面的编程应用。

跟我学Java入门到精通培训教程课后作业

跟我学Java入门到精通培训教程课后作业
杨教授工作室,版权所有,盗版必究, 5/9 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
System.out.println("zero"); break; case 1: System.out.println("one"); case 2: System.out.println("two"); } (A)default (B)default zero
(C)error default clause not defined (D)no output displayed (5)以下哪些是 java 主函数的正确写法 ( )
(A)public static void main(String[] arg) (B)static void main(String[] args) (C)public static void Main(String[] args) (D)public static void main(char[] args)
########
3、对“学生管理系统”项目中的表示教师信息的功能类进行完善和修改,按照如下的要求设 计教师程序类中的成员方法和成员属性:
杨教授工作室,版权所有,盗版必究, 3/9 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(1)成员属性:教师姓名、年龄、所在的学院、讲授的课程名称 (2)成员方法 showTeacherInfo()显示出如下的信息: 姓名:XXXX 年龄:XX 学院:XXXXXXX 课程:XXXXX 4、在“学生管理系统”项目中的 TeacherInfo(讲师)类的基础上,继承出 Professor(教授) 类,并自己正确地设计和定义出 Professor 类中的成员 5、在“学生管理系统”项目中的 StudentInfo(学生)类的基础上,继承出 Doctor(博士) 类,并自己正确地设计和定义出 Doctor 类中的成员 1.1.5 课后作业(6 月 26 日) 1、本天的学习总结——希望以后每天坚持记录如下的内容 (1)用自己的语言描述老师本天所讲的主要知识点 (2)老师在上课时特别强调要注意的问题 (3)记录出自己在本天的课程中还有什么不清楚的问题 (4)今天在学习中的“心得感悟”

跟我学Java入门到精通培训教程——第7章JavaBean编程技术及应用实例(第2部分)

跟我学Java入门到精通培训教程——第7章JavaBean编程技术及应用实例(第2部分)

1.1跟我学Java入门到精通培训教程——第7章JavaBean编程技术及应用实例(第2部分)1.1.1JavaBean中限制属性的实现代码示例为Bean增加事件处理的功能,使其可响应用户的鼠标点击事件、焦点事件、鼠标进入退出和按下释放等事件;同时也为它提供按下与否down标识、是否获得焦点hasFocus、以及按纽的文字前景颜色foregroundColor共三个属性。

import java.awt.*;import java.io.Serializable;import java.beans.*; //为了能够使用PropertyChangeSupport类和使用VetoableChangeSupport 类import java.awt.event.*;public class JavaBeanButton extends Canvas implements Serializable {//任何实现了Serializable接口的Java类都可以成为一个JavaBean类,并且可以实现默认的序列化。

private Color backgroundColor=Color.lightGray;private String label;static final int TEXT_XPAD=12;static final int TEXT_YPAD=8;private PropertyChangeSupport changes=new PropertyChangeSupport(this);//实例化一个PropertyChangeSupport类的对象,它用于管理注册的监听器列表和属性改变事件通知的发送private VetoableChangeSupport vetos=new VetoableChangeSupport(this);//实例化一个VetoableChangeSupport类的对象,它用于管理注册的监听器列表和属性限制事件通知的发送private boolean down;private transient boolean hasFocus;private Color foregroundColor;private transient ActionListener actionListener=null;private transient MouseListener mouseListener=null;private transient FocusListener focusListener=null;public JavaBeanButton(){this("确定",true); //设置Bean的初始Label文字}public JavaBeanButton(String label,boolean down) {//设计一个带参数的构造函数以初始化Bean的Label属性super(); //通过调用基类的构造函数,以获得Canvas的一般特性bel=label;this.foregroundColor=Color.black;this.down=down;this.setFont(new Font("Dialog",Font.PLAIN,12)); //设置Bean的初始字体this.enableEvents(AWTEvent.FOCUS_EVENT_MASK| //必须设置此方法,否则Bean不能接受事件AWTEvent.MOUSE_EVENT_MASK|AWTEvent.MOUSE_MOTION_EVENT_MASK|AWTEvent.ACTION_EVENT_MASK);}public void setBackgroundColor(Color backgroundColor){this.backgroundColor=backgroundColor;repaint();}public Color getBackgroundColor(){return this.backgroundColor;}public String getLabel(){return label;}public void setLabel(String newLabel) throws PropertyVetoException{String oldLabel=label;//在属性修改的方法体内,在修改限制属性之前触发属性否决事件,并传递原始的属性值和新的属性值(要求为Object对象类型的参数)vetos.fireVetoableChange("label",oldLabel,newLabel);label=newLabel;sizeToFit();//如果目标监听器允许限制属性的值被修改,将继续触发属性被修改事件changes.firePropertyChange("label",oldLabel,newLabel);//在属性修改的方法体内,在修改完关联属性后将触发属性修改事件}//实现维护属性修改监听器列表的方法(添加和删除)public void addPropertyChangeListener(PropertyChangeListener listener) {changes.addPropertyChangeListener(listener);}public void removePropertyChangeListener(PropertyChangeListener listener) { changes.removePropertyChangeListener(listener);}//实现维护限制属性修改的监听器列表的方法(添加和删除)public void addVetoableChangeListener(VetoableChangeListener listener){vetos.addVetoableChangeListener(listener);}public void removeVetoableChangeListener(VetoableChangeListener listener){ vetos.removeVetoableChangeListener(listener);}public Dimension getPreferredSize(){FontMetrics fm=getFontMetrics(getFont());return new Dimension(fm.stringWidth(label)+TEXT_XPAD,fm.getMaxAscent()+fm.getMaxDescent()+TEXT _YPAD);}public Dimension getMinimumSize(){return this.getPreferredSize();}private void sizeToFit(){//根据Bean上的文字长度实现调整Bean的尺寸的方法Dimension d=getPreferredSize();resize(d.width,d.height);Component p=getParent();if(p !=null){p.invalidate();yout();}}public void setFont(Font f){super.setFont(f);sizeToFit();}public void setForegroundColor(Color foregroundColor) {this.foregroundColor=foregroundColor;repaint();}public Color getForegroundColor(){return this.foregroundColor;}public boolean getHasFocus(){return this.hasFocus;}public void setHasFocus(boolean hasFocus){this.hasFocus=hasFocus;repaint();}public boolean isDown(){return this.down;}public void setDown(boolean down){this.down=down;repaint();}public synchronized void paint(Graphics g) {int width=this.getSize().width;int height=this.getSize().height;g.setColor(backgroundColor);g.fillOval(0,0,width,height);g.setColor(foregroundColor);FontMetrics fm=g.getFontMetrics(); //确保文字在按钮的中央if(down){g.drawString(label,((width-fm.stringWidth(label))/2)+2,((height+fm.getMaxAscent()-fm.getMaxDescent())/2)+1);}else {g.drawString(label,(width-fm.stringWidth(label))/2,(height+fm.getMaxAscent()-fm.getMaxDescent())/2);}if(hasFocus) {g.setColor(Color.lightGray);g.drawOval(2,2,width-6,height-6);}}//实现维护鼠标点击事件的监听器列表的方法(添加和删除)public synchronized void addActionListener(ActionListener listener) { actionListener=AWTEventMulticaster.add(actionListener,listener);}public synchronized void removeActionListener(ActionListener listener){ actionListener=AWTEventMulticaster.remove(actionListener,listener);}public synchronized void addMouseListener(MouseListener listener) { mouseListener=AWTEventMulticaster.add(mouseListener,listener);}public synchronized void removeMouseListener(MouseListener listener) { mouseListener=AWTEventMulticaster.remove(mouseListener,listener);}public synchronized void addFocusListener(FocusListener listener){ focusListener=AWTEventMulticaster.add(focusListener,listener);}public synchronized void removeFocusListener(FocusListener listener){ focusListener=AWTEventMulticaster.remove(focusListener,listener);}//向所有注册ActionListener的组件分发ActionEvent事件protected void processActionEvent(ActionEvent e){if(actionListener !=null){actionListener.actionPerformed(e);}}protected void processFocusEvent(FocusEvent e){ switch(e.getID()) {case FocusEvent.FOCUS_GAINED:hasFocus=true;repaint();if(focusListener !=null){focusListener.focusGained(e);}break;case FocusEvent.FOCUS_LOST:hasFocus=false;repaint();if(focusListener !=null){focusListener.focusLost(e);}break;}super.processFocusEvent(e);}protected void processMouseEvent(MouseEvent e){ switch(e.getID()) {case MouseEvent.MOUSE_PRESSED:down=!down;repaint();if(mouseListener !=null){mouseListener.mousePressed(e);}break;case MouseEvent.MOUSE_RELEASED: if(down){fireActionEvent();down=false;repaint();}if(mouseListener !=null){mouseListener.mouseReleased(e);}break;case MouseEvent.MOUSE_CLICKED: if(mouseListener !=null){mouseListener.mouseClicked(e);}break;case MouseEvent.MOUSE_ENTERED: if(mouseListener !=null){mouseListener.mouseEntered(e);}break;case MouseEvent.MOUSE_EXITED: if(mouseListener !=null){mouseListener.mouseExited(e);}break;}super.processMouseEvent(e);}private void fireActionEvent() {//内部支持方法processActionEvent(new ActionEvent(this,ActionEvent.ACTION_PERFORMED,null));}}1.1.2JavaBean的事件编程1、通过事件处理机制所产生的效果可让一些组件作为事件源,发出可被描述环境或其它组件接收的事件。

跟我学Java入门到精通培训教程——第8章 利用JBuilder开发各种Java应用程序(第4部分)

跟我学Java入门到精通培训教程——第8章 利用JBuilder开发各种Java应用程序(第4部分)
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
1.1
跟我学 Java 入门到精通培训教程——第 8 章 利用 JBuilder 开发各种
Java 应用程序(第 4 部分)
1.1.1 利用 JBuilder 开发 JavaBean 的编程 1、创建 JavaBean 的 Project 项目文件 (1)选择 File|New Project 以新建一个项目文件
杨教授工作室,版权所有,盗版必究, 3/14 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(3) 然后再增加其它属性
(4) 最后切换到 Source 视图以观看源程序
5、为 Bean 添加关联属性
杨教授工作室,版权所有,盗版必究, 4/14 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
PropertyChangeSupport(this); private String label; transient private VetoableChangeSupport vetoableChangeListeners = new
VetoableChangeSupport(this); transient private Vector actionListeners; transient private Vector focusListeners; transient private Vector mouseListeners; public JavaBeanButton() { try {
(2)设置其包名称、类名称等
(3)最后,点击 OK 按钮,将自动生成该 Bean 的程序代码
3、为 Bean 添加用户界面 选中该 Bean 的 Java 程序, 然后进入 Design 视图, 然后进行界面设计 (类同于一般的 Java

跟我学Java入门到精通培训教程——JavaBean组件编程技术及应用实例(第1部分)

跟我学Java入门到精通培训教程——JavaBean组件编程技术及应用实例(第1部分)

1.1JavaBean组件编程技术及应用实例(第1部分)1.1.1JavaBean组件相关编程技术1、Java语言的组件技术(1)JavaBean是什么?JavaBean 是一个特殊的类,这个类必须符合JavaBean规范。

JavaBean原来是为了能够在一个可视化的集成开发环境中可视化、模块化地利用组件技术开发应用程序而设计的。

JavaBean 是一种基于Java 的可复用的平台独立的软件组件,开发者可以在软件构造器工具中直接进行可视化操作,它是一种专门为当前软件开发者设计的全新的组件技术。

(2)JavaBean的种类它可以是简单的GUI元素,如按钮或滚动条;也可以是复杂的可视化软件组件,如数据库视图,但有些JavaBean是没有GUI表现形式的(称为非可视化软件组件),但这些JavaBean 仍然可以使用应用程序构造器可视化地进行组合。

一个JavaBean和一个Java Applet相似,是一个非常简单的遵循某种严格协议的Java 类。

每个JavaBean的功能都可能不一样,但它们都必须支持以下特征。

(3)JavaBean与微软的ActiveX的不同JavaBean是与平台无关的,而微软的ActiveX是基于Windows系统平台的。

2、一个标准的JavaBean组件应该满足以下几点特性(1)持续性持续性允许一个构件保存它的状态,因此它还能被重新创建。

JavaBeans持续性使用Java1.1环境对象序列化机制产生I/O流并在以后恢复。

构件创建者只需实现可序列化的接口以使构件保持持续。

持续的流可能为一个Java文件、一网络连接。

(2)制定性制定是JavaBean构件的新特性之一。

简而言之,Bean的创建者不仅创建运行状态的构件,而且还通过扩展ponent类创建了UI工具箱的类。

这个UI工具箱可被用来制定Bean的一个实例。

利用其它的构件模型,开发环境、可视化开发工具或任何其它的都必须提供所有对该构件的制定逻辑。

Java Web程序设计案例教程第六章 JavaBean技术

Java Web程序设计案例教程第六章 JavaBean技术

案例1 第一个简单的JavaBean
注意:
JavaBean不要求对属性同时设置set和get方法
如果一个属性只提供了setXxx()方法,则称xxx为只写 属性 如果只提供了getXxx()或isXXX()方法,则称xxx为只读 属性 如果两个都有,则称可读写属性
案例1 第一个简单的JavaBean
案例1 第一个简单的JavaBean
【拓展提高】
JavaBean属性的setter和getter方法可以自动的添加: 1、在UserBean类体定义中可以利用MyEclipse工具自动生成各属性相应的set和get方 法,右击在弹出的快捷菜单中选择【Source】【generate Getters and Setters】, 如图6-3所示。
2、在弹出的对话框中选中,如下图6-4所示。
案例2 在JSP中使用JavaBean
【学习目标】
(1)掌握JavaBean的应用模式; (2)掌握JavaBean在JSP中元素<jsp:useBean>、<jsp:setProperty>、 <jsp:getProperty> 使用案例1中创建的JavaBean类UserBean。
案例1 第一个简单的JavaBean
JavaBean属性定义及说明
属性定义一般对应3部分:
一个私有成员变量xxx 一个公有的setXxx()方法,用于对成员变量xxx赋值 一个公有getXxx()方法或isXxx()方法,用于获取成员变量xxx的值
说明:
xxx称为属性,它是首字母小写的合法标识符,其在对应的存取方法中首字 母必须大写 private String name; private boolean married; public String getName(){…} public boolean isMarried(){…} pulbic void setName(String name){…} public void setMarried(boolean b){…}

JSP与JavaBean应用举例精品PPT课件

JSP与JavaBean应用举例精品PPT课件
5.4.2 只对ROOT目录可用的Bean的存放 位置
如果仅仅让某个Bean被ROOT目录下的各个 JSP页面使用,那么Bean的字节码文件需要 存放在Tomcat安装目录的 webapps/ROOT/WEB-INF/classes目录中。
JAVA WEB编程
5.4.3 只供某个Web应用使用的Bean的存 放位置
如果让任何Web应用目录中的JSP页面都可以 使用某个Bean,那么这个Bean的字节码文件 需要存放在Tomcat安装目录的classes目录下。
需要注意的是,如果以后Bean的源文件发生 变化,classes目录下的Bean类文件并不能被 更新,所以访问的可能不是最新的Bean。
JAVA WEB编程
如果让某个Bean仅仅被某个Web应用目录下 的各个JSP页面使用,那么Bean的字节码文 件需要存放在Tomcat安装目录的 webapps/Web应用目录/WEB-INF/classes目 录中。
JAVA WEB编程
5.5 JSP与Bean结合举例
5.5.1 购物车Bean 5.5.2 读文件Bean 5.5.3 标准化试题Bean
构造函数:
➢ Hashtable():创建一个哈希表,初始容量为11,负载因子为 0.75.
➢ Hashtable(int cap):创建一个指定容量的哈希表。 ➢ Hashtable(int cap,float load):创建一个指定容量与负载因子
的哈希表。
常用方法:
➢put(key,value):将键值对存储到哈希表中。 ➢ remove(key):从哈希表中移除某个键值对。 ➢ elements():返回哈希表中所有值的枚举。
Car1.java代码:
package test; import java.util.*; public class Car1 { Hashtable list=new Hashtable();

Java入门培训教程简单说说JavaBean的使用

Java入门培训教程简单说说JavaBean的使用

简单说说JavaBean的使用Java入门培训教程
兄弟连IT教育自2006年成立以来,至今已有11年教育经验,现已开设有PHP培训,Linux培训,Java培训、JavaEE+大数据培训、UI培训、机器人培训等课程。

一:JavaBean定义
JavaBean是一种可重复使用、跨平台的软件组件。

JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean,例如NetBean中的那些可视化图形界面,
;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。

JSP通常访问的是最后一种JavaBean。

二:Jsp与JavaBean搭配使用的特点
1.使得Html与Java程序分离,这样便于维护代码。

如果把所有的程序代码都写成jsp到网页中,会使得代码繁杂,难以维护。

2.可以降低开发jsp网页人员对Java编程能力的要求。

3.jsp侧重生成动态网页,事务处理由JavaBean来完成,这样可以充分利用JavaBean组件的可重用性特点,提高开发网站的效率。

三:一个标准的JavaBean有以下几个特性:
-JavaBean是一个公共的(public)类。

-JavaBean有一个不带参数的构造方法。

-JavaBean通过setXXX方法设置属性,通过getXXX方法获得属性。

《JavaBean技术》课件

《JavaBean技术》课件
《JavaBean技术》PPT课件
欢迎来到《JavaBean技术》PPT课件,本课件将介绍JavaBean技术的基本 概念、创建、声明、使用以及实例应用。让我们一起探索这个重要的Java开 发技术!
1. 简介
JavaBean是一种可重用的Java组件,具有独立性和可移植性。它通过特定的 命名规则和定义的属性、方法和构造器,为Java应用程序提供了快速开发和 扩展的能力。
对于需要进行持久化操作的JavaBean,我们可以对其实现序列化和反序列化, 以便将对象写入文件或者传输到其他系统中。
4. 使用JavaBean
在使用JavaBean时,我们需要知道JavaBean的全类名以及如何使用它。通 过导入JavaBean的包,并调用其提供的方法,我们可以轻松地使用 JavaBean的功能。
JavaBean技术的应用场景广泛,包括Web开发、图形用户界面、数据库操作 等。通过使用JavaBean,开发人员可以提高开发效率、加快项目进度、降低 维护成本。
2. 创建JavaBean
为了创建一个JavaBean,我们需要遵循一定的命名规则。JavaBean的属性和方法应该以get和set方法 的形式存在,便于其他类进行访问和修改。
当使用JavaBean时,可能会遇到一些常见的错误。了解这些错误的原因,并 掌握解决方法,可以帮助我们更好地使用JavaBean。
Байду номын сангаас
5. 实例
通过实例应用,我们可以更好地理解和掌握JavaBean技术。我们将通过一个 具体的案例分析,展示JavaBean在实际开发中的应用和价值。
这个案例将演示如何使用JavaBean来进行用户信息管理,包括创建、读取、 更新和删除操作。通过这个案例,你将更深入地了解JavaBean技术。

JavaBean简单及使用

JavaBean简单及使用

JavaBean简单及使⽤⼀、JavaBean简介JavaBean是使⽤Java语⾔开发的⼀个可重⽤的组件,在JSP的开发中可以使⽤JavaBean减少重复代码,使整个JSP代码的开发更简洁。

JSP搭配JavaBean来使⽤,有以下的优点:1.可将HTML和Java代码分离,这主要是为了⽇后维护的⽅便。

如果把所有的程序代码(HTML和Java)写到JSP页⾯中,会使整个程序代码⼜多⼜复杂,造成⽇后维护上的困难。

2.可利⽤JavaBean的优点。

将⽇常⽤到的程序写成JavaBean组件,当在JSP要使⽤时,只要调⽤JavaBean组件来执⾏⽤户所要的功能,不⽤再重复写相同的程序,这样以来也可以节省开发所需的时间。

⼆、JavaBean开发要求1.JavaBean本⾝就是⼀个类,属于Java的⾯向对象编程。

2.在JSP中如果要应⽤JSP提供的Javabean的标签来操作简单类的话,则此类必须满⾜如下的开发要求:(1)所有的类必须放在⼀个包中,在WEB中没有包的是不存在的;(2)所有的类必须声明为public class,这样才能够被外部所访问;(3)类中所有的属性都必须封装,即:使⽤private声明;(4)封装的属性如果需要被外部所操作,则必须编写对应的setter、getter⽅法;(5)⼀个JavaBean中⾄少存在⼀个⽆参构造⽅法,此为JSP中的标签所使⽤。

第⼀个简单JavaBean[java]1. package blog.csdn.joywy;2. public class SimpleBean{3. private String name;4. private int age;5. public void setName(String name){6. = name;7. }8. public void setAge(int age){9. this.age = age;10. }11. public String getName(){12. return ;13. }14. public int getAge(){15. return this.age;16. }17. }如果在⼀个类中只包含属性、setter、getter⽅法,那么这种类就成为简单JavaBean。

跟我学Java入门到精通培训教程——第1章 Java Swing 组件技术及应用实例(第3部分)

跟我学Java入门到精通培训教程——第1章 Java Swing 组件技术及应用实例(第3部分)

1.1跟我学Java入门到精通培训教程——第1章 Java Swing 组件技术及应用实例(第3部分)1.1.1JScrollPane 面板1、功能主要为其它的控件提供Scroll功能。

2、与AWT的不同点在Swing 中与AWT中实现Scroll功能不同,在AWT中是由组件自己来实现,而在Swing 中则是统一由JScrollPane来完成。

3、应用的要求对于需要Scroll要求的组件,必须将它添加到JScrollPane容器中,再将它而添加到上层的容器中。

4、构造函数JScrollPane(Component view, int vsbPolicy, int hsbPolicy) 其中的vsbPolicy和hsbPolicy代表ScrollBar的使用方式。

5、Scroll方式由如下六种常量决定1)JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED2)JScrollPane.VERTICAL_SCROLLBAR_NEVER3)JScrollPane.VERTICAL_SCROLLBAR_ALWAYS4)JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED5)JScrollPane.HORIZONTAL_SCROLLBAR_NEVER6)JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS6、创建的代码如下JTextArea textBox=new JTextArea();JScrollPane scroll=new JScrollPane(textBox,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); setContentPane(scroll);7、示例程序执行的效果1.1.2选项窗格JTabbedPane1、特性它表现为一组文件夹页,每个文件夹都有标题。

第6章 JavaBean编程

第6章  JavaBean编程

public void propertyChange(PropertyChangeEvent propertyChangeEvent) { String source = propertyChangeEvent.getPrope rtyName( ); if(source.equals("lampStr")) { String newValue = (String)propertyChangeEven t.getNewValue( ); myLabel1.setText("");
至此, JBuilder自动生成的程序框 至此,由JBuilder自动生成的程序框 架已经完成。 架已经完成。下面按照程序的需要手工添 加一些代码。 MyField的构造方法中 的构造方法中, 加一些代码。在MyField的构造方法中,增 加如下语句,首先调用父类的构造方法, 加如下语句,首先调用父类的构造方法, 然后设置其为不可编辑。 然后设置其为不可编辑。
点火事件 Fooevent Event Listener
接口引用
class Fooey implements FooListener{ void fooBarHappend (FooEvent fe){ //… } void fooBarOccurred (FooEvent fe){ //… }
图6-1 JavaBean事件模型结构图 事件模型结构图
完成后, Events”中将出 完成后,在“Custom Events”中将出 现一个新的事件选项PropertyChange PropertyChange, 现一个新的事件选项PropertyChange,在 events”列表框中选 “Listen for these events”列表框中选 中该事件,从而实现属性更改监听器接口。 中该事件,从而实现属性更改监听器接口。

JavaBean技术ppt课件

JavaBean技术ppt课件
this.select[index]=single; } public String getSelect(int index) {
return this.select[index]; }
5.3 JavaBean的运用
▪ 创建JavaBean ▪ 在JSP页面中运用JavaBean
5.3.1 创建JavaBean JavaBean本质上就是一种遵照了特殊规范的Java
第五章 JavaBean技术
本章构造:
JavaBean概述 JavaBean中的属性 JavaBean的运用 JavaBean的运用实例
5.1 JavaBean概述
▪ JavaBean技术引见 ▪ JavaBean的种类 ▪ JavaBean规范
JavaBean组件就是利用Java言语编写的组件,每 个JavaBean都实现了一个特定的功能,经过合理地 组织不同功能的JavaBean,可以快速生成一个全新 的运用程序。假设将一个运用程序比做一间空房间, 那么这些JavaBean就好比房间中的家具。
【例5-8】 在JSP页面中运用工具JavaBean
5.4 JavaBean的运用实例
▪ 运用JavaBean处理中文乱码 ▪ 运用JavaBean实现购物车 5.4.1 运用JavaBean处理中文乱码
在JSP程序开发中,经过表单提交的数据中假设 存在中文,那么获取该数据后输出到页面中将显示 乱码。所以在输出获取的表单数据之前,必需进展 转码操作。将该转码操作在JavaBean中实现,可在 开发其他工程时反复运用,防止了反复编码。
public class UserInfo{ private String name; private String password; public String getName() { return name; } public void setName (String name) { =name; } public String getPassword() { return password; } public void setPassword(String password) { this.password=password; }

7.2 使用JavaBean_Java Web编程入门与实战_[共6页]

7.2 使用JavaBean_Java Web编程入门与实战_[共6页]

第7章 JSP和JavaBean·166·章介绍了Java Web编程的一个重要概念:JavaBean,并且详细介绍了如何结合JSP 和JavaBean进行Java Web编程。

然后介绍了JavaBean的几个作用范围:application、session、request以及page。

最后介绍了JSP和Servlet之间的通信以及MVC模式。

7.1 JavaBean简介在软件开发过程中,我们会经常听到“组件”这个词,所谓的组件就相当于别人给我们做好的一个软件模块,我们在自己的程序设计中可以直接使用这些“模块”。

JavaBean也是一种组件技术,目前,在软件开发中代表的组件有如下几类:COM、JavaBean、EJB(Enterprise JavaBean,企业级JavaBean)以及CORBA(Common Object Request Broker Architecture,公共对象代理结构)。

虽然这些组件使用的开发工具有所不同,如可以使用VC、Visual Basic、Java来进行组件的开发,但是这些组件都有一些共同点:●可重用,即可被多个代码调用;●升级方便;●不依赖于平台,可以加快软件的开发。

而且,由于Java具有“Write once, run anywhere, reuse anywhere”(一次书写,处处运行,处处可重用)的特点,所以说,JavaBean的一个显著特点就是它可以在支持Java的任何平台上工作,而不需要重新编译。

传统意义上的JavaBean支持的组件有两种,分别为可视化组件和非可视化组件。

对于可视化组件,开发人员可以在运行结果中觉察到,如Swing下的应用等;而非可视化组件一般不可以在运行结果中觉察到,它一般用来处理一些复杂的事件,主要用在服务器端。

对于JSP 来说,只支持非可视化JavaBean组件。

虽然你可以在不同的文件代码里放入一大块相同的程序代码,但是大多数的Java程序代码是属于可以重复使用的,即这段代码可以被当作JavaBean组件来使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.1JavaBean组件编程技术及应用实例(第4部分)10、为Bean增加BeanInfo类(为Bean提供显式的信息如Bean在应用程序构造器中的属性、图标、事件的名称等)(1)方式一:在应用程序构造器中曝露所有的属性、事件、方法等信息。

import java.beans.*;import java.awt.*;public class JavaBeanButtonBeanInfo extends SimpleBeanInfo{/*以下代码为JavaBean提供16*16和32*32的图标*/public Image getIcon(int iconKind){if(iconKind==BeanInfo.ICON_COLOR_16x16){Image img=this.loadImage("BeanIconColor16.gif");return img;}if(iconKind==BeanInfo.ICON_COLOR_32x32){Image img=this.loadImage("BeanIconColor32.gif");return img;}return null;}/*以下代码位JavaeBean提供在应用程序的构造工具中的显示名称字串*/private final static Class beanClass=JavaBeanButton.class;public BeanDescriptor getBeanDescriptor() {BeanDescriptor bd=new BeanDescriptor(JavaBeanButton.class); //采用缺省的定制文件创建Bean的描述信息bd.setDisplayName("JavaBeanButton"); //在应用程序的构造工具中的显示名称字串return bd;}/*以下代码显式地声明属性*/public PropertyDescriptor[] getPropertyDescriptors(){try{PropertyDescriptor foreground=new PropertyDescriptor("foreground",JavaBeanButton.class),background=new PropertyDescriptor("background",JavaBeanButton.class),font=new PropertyDescriptor("font",JavaBeanButton.class),name=new PropertyDescriptor("name",JavaBeanButton.class),/*以上为继承来的属性*//*以下为程序中所新增加的属性*/label=new PropertyDescriptor("label",JavaBeanButton.class),down=new PropertyDescriptor("down",JavaBeanButton.class),hasFocus=new PropertyDescriptor("hasFocus",JavaBeanButton.class),backgroundColor=new PropertyDescriptor("backgroundColor",JavaBeanButton.class),foregroundColor=new PropertyDescriptor("foregroundColor",JavaBeanButton.class); /*可以根据应用的需要,将某些属性在应用程序的构造工具中隐藏起来*/font.setHidden(true);PropertyDescriptor[] pd={foreground, background,font,name,label,down,hasFocus,backgroundColor, foregroundColor};return pd;}catch(IntrospectionException e){throw new Error(e.toString());}}public int getDefaultPropertyIndex(){return 5; //将label作为缺省的属性}//以下代码通过实现getEventSetDescriptors()方法来为Bean显式地注册事件接口public EventSetDescriptor[] getEventSetDescriptors(){EventSetDescriptorchanged=null,action=null,focusGained=null,focusLosted=null,mouseReleased=null,mousePressed= null,mouseEntered=null,mouseExited=null,mouseClicked=null;try{changed=new EventSetDescriptor(JavaBeanButton.class,"propertyChange",java.beans.PropertyChangeListener.class,"propertyChange");changed.setDisplayName("JavaBeanButton propertyChange Event");action=new EventSetDescriptor(JavaBeanButton.class,"actionPerformed",java.awt.event.ActionListener.class,"actionPerformed");action.setDisplayName("JavaBeanButton actionPerformed Event");focusGained=new EventSetDescriptor(JavaBeanButton.class,"focusGained",java.awt.event.FocusListener.class,"focusGained");focusGained.setDisplayName("JavaBeanButton Focus Gained Event");focusLosted=new EventSetDescriptor(JavaBeanButton.class,"focusLost",java.awt.event.FocusListener.class,"focusLost");focusLosted.setDisplayName("JavaBeanButton Focus Losted Event");mousePressed=new EventSetDescriptor(JavaBeanButton.class,"mousePressed",java.awt.event.MouseListener.class,"mousePressed");mousePressed.setDisplayName("JavaBeanButton Mouse Pressed Event");mouseReleased=new EventSetDescriptor(JavaBeanButton.class,"mouseReleased",java.awt.event.MouseListener.class,"mouseReleased");mouseReleased.setDisplayName("JavaBeanButton Mouse Released Event");mouseEntered=new EventSetDescriptor(JavaBeanButton.class,"mouseEntered",java.awt.event.MouseListener.class,"mouseEntered");mouseEntered.setDisplayName("JavaBeanButton Mouse Enter Event");mouseExited=new EventSetDescriptor(JavaBeanButton.class,"mouseExited",java.awt.event.MouseListener.class,"mouseExited");mouseExited.setDisplayName("JavaBeanButton Mouse Exit Event");mouseClicked=new EventSetDescriptor(JavaBeanButton.class,"mouseClicked",java.awt.event.MouseListener.class,"mouseClicked");mouseClicked.setDisplayName("JavaBeanButton Mouse Click Event");}catch(IntrospectionException e){}EventSetDescriptor name[]={changed,action,focusGained,focusLosted,mouseReleased,mousePressed,mouseEntered,mouseExited,mouseClicked};return name;}}注意要点:(1)由于此时包含有JavaBeanButtonBeanInfo类及图标的图像文件,因此在形成*.jar文件时,应采用如下的命令行方式:jar cfm JavaBeanButton.jar JavaBeanManifest.txt JavaBeanButton.classJavaBeanButtonBeanInfo.class BeanIconColor16.gif BeanIconColor32.gif(2)Bean的源程序代码与测试容器程序的代码不变(3)在Beanbox测试容器中的自检状态信息如图示:在BeanBox中查看Bean 中的方法(如果在run.bat文件中加入java sun.beanbox.BeanBoxFrame > beanreport.txt,此时将在标准输出中的显示信息重定向到beanreport.txt文件中。

相关文档
最新文档