java自学==javabean实例

javaBean是java web开发中的组件技术。一个JavaBean就是一个java类。主要有两种:(1)带有可视化界面的类,如button,combo等(2)没有可视化界面的类,javaweb用的是后者。

   JavaBean完成的工作主要是业务逻辑和数据处理逻辑,这样将显示逻辑和java程序逻辑分开来,减少jsp中的java代码量,而将大量的java代码封装到JavaBean组件中,在jsp页面只要简单的调用JavaBean即可,如用jsp:useBean动作标签。

    JavaBean的编写规则:

(1)应该为一个public类

(2)如果属性名字xxx,则getXxx()为得到属性值,setXxx()为设置属性值。

<jsp:getProperty>标签得到属性的值,实质上是调用JavaBean的get方法。

例如:

useBean.jsp

<%@ page language='java' contentType='text/html;charset=gb2312'
pageEncoding='gb2312'%>
<html>
<head>
  <title>使用useBean动作指令</title>
</head>
<body>



可视化bean

package visibableBean;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.BeanInfo;
import java.beans.EventSetDescriptor;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.MethodDescriptor;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

//可视化bean
public class Bean extends JFrame {

	private JTextField text=new JTextField(20);
	private JTextArea results=new JTextArea(); //文本域
	
	public void print(String s){
		results.append(s+"\n");
	}
	public void use(Class bean){
		results.setText("");
		BeanInfo bi=null;
		try{
			bi=Introspector.getBeanInfo(bean, Object.class);
		}catch(IntrospectionException e){
			print("Couldn't introspect"+bean.getName());
			return;
		}
		PropertyDescriptor[]properties=bi.getPropertyDescriptors(); //所有属性数组
		for(int i=0;i<properties.length;i++){
			Class p=properties[i].getPropertyType(); //属性的类型,返回为Class对象
			if(p==null)continue;
			print("属性类型: "+p.getName()+"\n属性名称: "+properties[i].getName());
			Method readMethod=properties[i].getReadMethod();
			if(readMethod!=null)
				print("getXXX() 方法: "+readMethod);
			Method writeMethod=properties[i].getWriteMethod();
			if(writeMethod!=null)
				print("setXXX() 方法: "+writeMethod);
			
		}
		print("===============");
		print("所有公共方法:");
		MethodDescriptor[] methods=bi.getMethodDescriptors();
		for(int i=0;i<methods.length;i++){
			print(methods[i].getMethod().toString());
			
		}
		print("===============");
		print("Event support");
		EventSetDescriptor[] events=bi.getEventSetDescriptors();
		for(int i=0;i<events.length;i++){
			print("监听类型:"+events[i].getListenerType().getName());
			Method[]lm=events[i].getListenerMethods();
			for(int j=0;j<lm.length;j++)
				print("监听方法: "+lm[j].getName());
			MethodDescriptor []lmd=events[i].getListenerMethodDescriptors();
			//for(int j=0;j<lmd.length;j++)
				//print("M")
			Method addListener=events[i].getAddListenerMethod();
			print("添加监听方法: "+addListener);
			Method removeListener=events[i].getRemoveListenerMethod();
			print("删除监听方法: "+removeListener);
		}
			
		
	}
	public Bean(){
		Container cp=getContentPane();
		JPanel p=new JPanel();
		p.setLayout(new FlowLayout());
		p.add(new JLabel("请输入JavaBean名称"));
		p.add(text);
		cp.add(BorderLayout.NORTH,p);
		cp.add(new JScrollPane(results));
		text.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent arg0) {
				String name=text.getText();
				Class c=null;
				try{
					c=Class.forName(name);
				}catch(ClassNotFoundException ex){
					ex.getMessage();
					return;
				}
				use(c);
			}
			
		}); //文本框添加响应事件
		
		text.setText("com.wsy.visalJavaBean");
	}
	
	public static void main(String[] args) {

		new Bean().setSize(500,300);
		new Bean().setVisible(true);
	}

}



package com.wsy;

import java.awt.event.ActionListener;

public class visalJavaBean {
	private int color;
	private int background;
	private int active;
	public int getActive() {
		return active;
	}
	public void setActive(int active) {
		this.active = active;
	}
	public int getBackground() {
		return background;
	}
	public void setBackground(int background) {
		this.background = background;
	}
	public int getColor() {
		return color;
	}
	public void setColor(int color) {
		this.color = color;
	}
	public void addActionListener(ActionListener l){
		
	}
	public void removeActionListener(ActionListener l){
		
	}
}


执行结果:

java自学==javabean实例

全部源码见附件

你可能感兴趣的:(java,bean,jsp,swing,J#)